Browse Source

Bug 21535: Anonymize function in Patron should not scramble email addresses

Scrambled email addresses will only generate warnings etc.
Clear them although they might be in BorrowerMandatoryField.

Test plan:
Run t/db_dependent/Koha/Patrons.t

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

t/db_depepended/Koha/Patrons.t runs with no warnings.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
19.05.x
Marcel de Rooy 6 years ago
committed by Nick Clemens
parent
commit
2330a155f6
  1. 4
      Koha/Patron.pm
  2. 3
      t/db_dependent/Koha/Patrons.t

4
Koha/Patron.pm

@ -1358,7 +1358,9 @@ sub anonymize {
warn "Exiting anonymize: patron ".$self->borrowernumber." still has issues";
return;
}
my $mandatory = { map { (lc $_, 1); }
# Mandatory fields come from the corresponding pref, but email fields
# are removed since scrambled email addresses only generate errors
my $mandatory = { map { (lc $_, 1); } grep { !/email/ }
split /\s*\|\s*/, C4::Context->preference('BorrowerMandatoryField') };
$mandatory->{userid} = 1; # needed since sub store does not clear field
my @columns = $self->_result->result_source->columns;

3
t/db_dependent/Koha/Patrons.t

@ -1761,7 +1761,7 @@ subtest 'lock' => sub {
};
subtest 'anonymize' => sub {
plan tests => 9;
plan tests => 10;
my $patron1 = $builder->build_object( { class => 'Koha::Patrons' } );
my $patron2 = $builder->build_object( { class => 'Koha::Patrons' } );
@ -1782,6 +1782,7 @@ subtest 'anonymize' => sub {
isnt( $patron1->surname, $surname, 'Surname changed' );
ok( $patron1->surname =~ /^\w{10}$/, 'Mandatory surname randomized' );
is( $patron1->branchcode, $branchcode, 'Branch code skipped' );
is( $patron1->email, undef, 'Email was mandatory, must be cleared' );
# Test wrapper in Koha::Patrons
$patron1->surname($surname)->store; # restore

Loading…
Cancel
Save