From 09d07dd524d43c657820a2059885071ec70d785d 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 --- reports/borrowers_out.pl | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/reports/borrowers_out.pl b/reports/borrowers_out.pl index 357719c407..f7c4c98ed7 100755 --- a/reports/borrowers_out.pl +++ b/reports/borrowers_out.pl @@ -211,7 +211,14 @@ sub calculate { $strcalc .= "SELECT CONCAT( borrowers.surname , \"\\t\",borrowers.firstname, \"\\t\", borrowers.cardnumber)"; $strcalc .= " , " . $dbh->quote($colfield) if ($colfield); $strcalc .= " FROM borrowers "; - $strcalc .= "WHERE 1 "; + my $cur_lib = C4::Context->userenv->{branch}; + if(C4::Context->preference('IndependentBranches') && !C4::Context->IsSuperLibrarian()){ + $strcalc .= "WHERE branchcode = '$cur_lib' "; + } + else{ + $strcalc .= "WHERE 1 "; + } + my @query_args; if ( @$filters[0] ) { @$filters[0]=~ s/\*/%/g; -- 2.25.1