From dfe1bd600c3155bdc905716c8c745051a3234d06 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 Tested with edit_borrowers permission but NOT view_borrower_infos_from_any_libraries Editing the DOM I can search (not edit) from any branch With patch no entries found :) Signed-off-by: Katrin Fischer Amended test plan slightly (+ without) Signed-off-by: Joy Nelson (cherry picked from commit c33f598c5cdea829390660419498e15f968f9abe) Signed-off-by: Hayley Mapley --- 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 18de38cf6b..d8da9e56fc 100644 --- a/C4/Utils/DataTables/Members.pm +++ b/C4/Utils/DataTables/Members.pm @@ -38,7 +38,7 @@ sub search { # Do that after iTotalQuery! if ( defined $branchcode and $branchcode ) { @restricted_branchcodes = @restricted_branchcodes - ? grep { /^$branchcode$/ } @restricted_branchcodes + ? ( grep { /^$branchcode$/ } @restricted_branchcodes ) ? ($branchcode) : (undef) # Do not return any results : ($branchcode); -- 2.39.5