From 378c3c10d5c5f9caeda897644e323e1225e89300 Mon Sep 17 00:00:00 2001 From: The Minh Luong Date: Wed, 26 Jan 2022 16:22:19 -0500 Subject: [PATCH] Bug 28967: Patrons with no checkouts report shows patrons from other libraries with IndependentBranches When IndependentBranches is activated and a non-superlibrarian user looks at the "Patrons with no checkouts" report, it shows patrons from other libraries. To recreate: 1) Activate IndependentBranches, IndependentBranchesPatronModifications and IndependentBranchesTransfers 2) Create a staff user with limited permissions (NOT a superlibrarian), including reports permissions. Here are mine as an example - circulate (all) - catalogue - borrowers - delete_borrowers - edit_borrowers - reserveforothers (all) - reports (all) 3) Create (or make sure you already have) a patron in another branch (if using an existing patron, make sure they have no checkouts or checkout history) 4) Log in as your limited staff patron 5) Go to Reports > Inactive > Patrons who haven't checked out 6) Don't put in any limitations and click Submit -- The patron from the other library appears in the list 7) Try to search for that other patron in the patron module -- The patron from the other library is inaccessible 8) Apply the patch 9) Notice that the limited patron can only see patrons from his own library Signed-off-by: David Nind Signed-off-by: Katrin Fischer Signed-off-by: Tomas Cohen Arazi (cherry picked from commit ae9536b61fe8381eb92956bfb3cc698d03bb08c1) Signed-off-by: Lucas Gass (cherry picked from commit ae0fe1af356ed848861a8d6d874f2b43d4252740) Signed-off-by: Arthur Suzuki --- reports/borrowers_out.pl | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/reports/borrowers_out.pl b/reports/borrowers_out.pl index dce275b56e..d2b5af6d77 100755 --- a/reports/borrowers_out.pl +++ b/reports/borrowers_out.pl @@ -207,6 +207,11 @@ sub calculate { $strcalc .= " , " . $dbh->quote($colfield) if ($colfield); $strcalc .= " FROM borrowers "; $strcalc .= "WHERE 1 "; + if(C4::Context->preference('IndependentBranches') && !C4::Context->IsSuperLibrarian()){ + $strcalc .= "AND branchcode = '".C4::Context->userenv->{branch}."' "; + } + + my @query_args; if ( @$filters[0] ) { @$filters[0]=~ s/\*/%/g; -- 2.39.5