view release on metacpan or search on metacpan
0.27 2017-09-12 14:40:12+01:00 Europe/London
* Fields are no longer masked if the mask happens to be the empty string
0.26 2016-12-14 14:19:22+00:00 Europe/London
* Added missing pod
0.25 2016-12-14 13:35:17+00:00 Europe/London
* Updated methods for pulling all the prefs out in datastructures to do
decryption and allow for a hash
* Added Jenkinsfile for testing
0.24 2016-11-04 17:10:57+00:00 Europe/London
* Updated dependency on Postgres module
0.23 2016-11-04 12:01:59+00:00 Europe/London
* Added field mask function
lib/OpusVL/FB11X/Preferences/Role/ParameterValueEditing.pm view on Meta::CPAN
package OpusVL::FB11X::Preferences::Role::ParameterValueEditing;
use v5.24;
use Moose::Role;
use Switch::Plain 'sswitch';
sub add_prefs_defaults
{
my $self = shift;
my $c = shift;
my $args = shift;
my $defaults = $args->{defaults};
my $resultset = $args->{resultset};
my $object = $args->{object};
my $field_rs = $resultset ? $resultset->prf_defaults : $object->prf_defaults;
my @fields = $field_rs->active->all;
lib/OpusVL/FB11X/Preferences/Role/ParameterValueEditing.pm view on Meta::CPAN
$defaults->{'confirm_global_fields_' . $field->name} = $value;
}
$defaults->{'global_fields_' . $field->name} = $value;
}
return $defaults;
}
# DEBT: I don't know how to decouple this from the token processor because it's
# doing audit trail stuff. The Brain architecture needs to be more mature to do
# that.
sub update_prefs_values
{
my ($self, $c, $object) = @_;
# FIXME: to use two methods below instead.
my $form = $c->stash->{form};
my @fields = $object->prf_defaults->active->all;
my $params = OpusVL::FB11::Hive->service('sysparams')->for_component('preferences');
for my $field (@fields)
{
lib/OpusVL/FB11X/Preferences/Role/ParameterValueEditing.pm view on Meta::CPAN
$object,
$object->prf_get('email'),
);
}
}
$object->prf_set($name, $value);
}
}
}
sub get_prefs_values_from_form
{
my ($self, $c, $object) = @_;
my @fields = $object->prf_defaults->active->all;
return $self->collect_values_from_form($c, @fields);
}
sub collect_values_from_form
{
my ($self, $c, @fields) = @_;
lib/OpusVL/FB11X/Preferences/Role/ParameterValueEditing.pm view on Meta::CPAN
if ($value) {
$value =~ s/^\s+//g;
$value =~ s/\s+$//g;
}
$values->{$name} = $value;
}
return $values;
}
sub prefs_hash_to_array
{
my $self = shift;
my $rs = shift;
my $hash = shift;
my @d = sort { $a->{param}->display_order <=> $b->{param}->display_order
|| $a->{param}->name cmp $b->{param}->name }
map { {
name => $_,
value => $hash->{$_},
param => $rs->prf_defaults->find({ name => $_ }),
} } keys %$hash;
return @d;
}
sub update_prefs_from_hash
{
my ($self, $object, $hash) = @_;
for my $name (keys %$hash)
{
my $value = $hash->{$name};
unless($object->prf_get($name) eq $value)
{
$object->prf_set($name, $value);
}
lib/OpusVL/FB11X/Preferences/Role/ParameterValueEditing.pm view on Meta::CPAN
1;
=head1 NAME
OpusVL::AppKitX::TokenProcessor::Admin::Role::ParameterValueEditing
=head1 DESCRIPTION
=head1 METHODS
=head2 add_prefs_defaults
=head2 update_prefs_values
=head2 get_prefs_values_from_form
=head2 collect_values_from_form
=head2 prefs_hash_to_array
=head2 update_prefs_from_hash
=head2 construct_global_data_form
=head2 construct_global_data_search_form
=head2 construct_form_fields
=head2 field_type_info
lib/OpusVL/Preferences/RolesFor/Result/PrfOwner.pm view on Meta::CPAN
# value => $_->value,
# param => # assocaited PrfDefault parameter definition.
# } ];
=head2 safe_preferences_in_array
Returns the same as preferences_to_array but instead of the param object it returns the
field label. The safe refers to the fact that all the items in the hash are base types
and therefore are trivially serializable.
=head2 safe_prefs_to_hash
Returns the same as safe_prefs_to_hash but converts it to a hash for easier use.
=head1 COPYRIGHT and LICENSE
Copyright (C) 2011 OpusVL
This software is licensed according to the "IP Assignment Schedule" provided with the development project.
=cut
use v5.24;
lib/OpusVL/Preferences/RolesFor/Result/PrfOwner.pm view on Meta::CPAN
my $self = shift;
my $extra_params = $self->preferences_to_array;
my @cleaned_up = map { {
name => $_->{name},
value => $_->{value},
label => $_->{param}->comment,
} } @$extra_params;
return \@cleaned_up;
}
sub safe_prefs_to_hash
{
my $self = shift;
my $info = $self->safe_preferences_in_array;
my %hash = map { $_->{name} => $_->{value} } @$info;
return \%hash;
}
sub prf_get
{
my $self = shift;
lib/OpusVL/Preferences/RolesFor/Result/PrfOwner.pm view on Meta::CPAN
)->search_related('unique_value')->delete;
}
}
sub prf_set
{
my $self = shift;
my $prefname = shift;
my $value = shift;
my $allprefs = $self->prf_preferences;
my $pref = $allprefs->search ({ name => $prefname })->first;
my $field = $self->prf_defaults->search ({ name => $prefname })->first;
unless($field)
{
die "Field $prefname not setup.";
}
if($field->encrypted)
{
my $schema = $self->result_source->schema;
my $crypto = $schema->encryption_client;
lib/OpusVL/Preferences/RolesFor/Result/PrfOwner.pm view on Meta::CPAN
if($field->unique_field)
{
$self->_clear_out_inactive_unique_values($prefname, $field);
my $place_holder = $value;
if($field->data_type eq 'email')
{
$place_holder = lc $value;
}
$data->{unique_value} = { value => $place_holder };
}
$allprefs->create($data);
}
}
sub prf_reset
{
my $self = shift;
my $name = shift;
my $val = $self->prf_preferences->search ({ 'me.name' => $name });
$val->search_related('unique_value')->delete;
t/encrypt.t view on Meta::CPAN
ok $results = TestOwner->with_fields({
pin => '10013211',
});
# FIXME: how should we let the dev know about this?
is $results->count, 0, 'Search by pin should return 0 results because not using searchable crypto';
eq_or_diff {
email => 'blackhole@opusvl.com',
pin => 10013211,
}, $o->safe_prefs_to_hash;
# FIXME: test unique fields.
# default values
# also auditing
done_testing;