From 78f2c8d25323b00bad3363725adc04b2593d0c68 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 --- reports/borrowers_out.pl | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/reports/borrowers_out.pl b/reports/borrowers_out.pl index 4678a6091e..b5271d98a5 100755 --- a/reports/borrowers_out.pl +++ b/reports/borrowers_out.pl @@ -204,6 +204,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.30.2