From ca5b112376f8b74d573f8b8d6c1512a59040ba60 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 14 Apr 2020 13:22:44 +0200 Subject: [PATCH] Bug 25142: Fix wrong grep logical test To test and understand what's going on, you can try that bit of code: my @a = qw( a b c a); my @b = qw( b c d ); my @c; @c = grep { 'a' eq $_ } @a ? 'ok' : (); say @c; @c = ( grep { 'a' eq $_ } @a ) ? 'ok' : (); say @c; @c = grep { 'a' eq $_ } @a ? ('ok') : (undef); say @c; The problem here: Have patrons in 3 branches CPL, MPL, SPL Have a non superlibrarian with edit_borrowers permission but without view_borrower_infos_from_any_libraries, from CPL Create a library group with CPL, MPL Use that non superlibrarian to search for patrons You can search for patrons fro CPL and MPL BUT, edit the value for CPL, use SPL (edit the DOM) Search and... oops Apply this patch, try again Also use a superlibrarian patron (and/or with view_borrower_infos_from_any_libraries) and confirm that they can see all patrons Signed-off-by: Bernardo Gonzalez Kriegel Signed-off-by: Katrin Fischer Signed-off-by: Martin Renvoize --- C4/Utils/DataTables/Members.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/C4/Utils/DataTables/Members.pm b/C4/Utils/DataTables/Members.pm index 5bcd971309..29efd0bd3c 100644 --- a/C4/Utils/DataTables/Members.pm +++ b/C4/Utils/DataTables/Members.pm @@ -57,7 +57,7 @@ sub search { # Do that after iTotalQuery! if ( defined $branchcode and $branchcode ) { @restricted_branchcodes = @restricted_branchcodes - ? grep { $_ eq $branchcode } @restricted_branchcodes + ? grep ({ $_ eq $branchcode } @restricted_branchcodes) ? ($branchcode) : (undef) # Do not return any results : ($branchcode); -- 2.39.5