From d0623804ebd5145c87e05ec9ff1ebf5f7b2ef051 Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Fri, 29 Nov 2019 09:17:19 +0000 Subject: [PATCH] Bug 24114: (follow-up) Resolve warning on non-numeric subtraction Argument "" isn't numeric in subtraction (-) at /usr/share/koha/Koha/Patrons.pm line 290. Coming from an empty or undefined FailedLoginAttempts. Test plan: Verify that Koha/Patrons.t still passes. Signed-off-by: Marcel de Rooy Signed-off-by: Bouzid Fergani Signed-off-by: Martin Renvoize Signed-off-by: Joy Nelson (cherry picked from commit c242f8667794cc4217155c783dfe8065d77ac788) Signed-off-by: Lucas Gass --- Koha/Patrons.pm | 2 +- t/db_dependent/Koha/Patrons.t | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Koha/Patrons.pm b/Koha/Patrons.pm index 8971a081ec..6c1ee44c2b 100644 --- a/Koha/Patrons.pm +++ b/Koha/Patrons.pm @@ -296,7 +296,7 @@ sub search_anonymize_candidates { $cond->{dateexpiry} = { '<=' => $str }; $cond->{anonymized} = 0; # not yet done if( $params->{locked} ) { - my $fails = C4::Context->preference('FailedLoginAttempts'); + my $fails = C4::Context->preference('FailedLoginAttempts') || 0; $cond->{login_attempts} = [ -and => { '!=' => undef }, { -not_in => [0, 1..$fails-1 ] } ]; # -not_in does not like undef } return $class->search( $cond ); diff --git a/t/db_dependent/Koha/Patrons.t b/t/db_dependent/Koha/Patrons.t index 2783a5b91f..383b1b2d39 100644 --- a/t/db_dependent/Koha/Patrons.t +++ b/t/db_dependent/Koha/Patrons.t @@ -1701,7 +1701,7 @@ subtest 'search_unsubscribed' => sub { }; subtest 'search_anonymize_candidates' => sub { - plan tests => 5; + plan tests => 7; my $patron1 = $builder->build_object({ class => 'Koha::Patrons' }); my $patron2 = $builder->build_object({ class => 'Koha::Patrons' }); $patron1->anonymized(0); @@ -1743,6 +1743,15 @@ subtest 'search_anonymize_candidates' => sub { $patron1->login_attempts(3)->store; is( Koha::Patrons->search_anonymize_candidates({locked => 1})->count, $cnt+1, 'Locked flag' ); + + t::lib::Mocks::mock_preference( 'FailedLoginAttempts', q{} ); + # Patron 1 still on 3 == locked + is( Koha::Patrons->search_anonymize_candidates({locked => 1})->count, + $cnt+1, 'Still expect same number for FailedLoginAttempts empty' ); + $patron1->login_attempts(0)->store; + # Patron 1 unlocked + is( Koha::Patrons->search_anonymize_candidates({locked => 1})->count, + $cnt, 'Patron 1 unlocked' ); }; subtest 'search_anonymized' => sub { -- 2.39.5