From 14a77ce99d4f23e0b83a5201f8ef80669c01ba36 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Fri, 14 Jan 2022 13:03:54 -0300 Subject: [PATCH] Bug 29886: Add Koha::Suggestions->search_limited Signed-off-by: Tomas Cohen Arazi Signed-off-by: David Nind Signed-off-by: Martin Renvoize Signed-off-by: Fridolin Somers Signed-off-by: Kyle M Hall (cherry picked from commit 2bcac55ba4372d2f6d7899cd973242db1211ce67) Signed-off-by: Andrew Fuerste-Henry --- Koha/Suggestions.pm | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/Koha/Suggestions.pm b/Koha/Suggestions.pm index 39f4a525fa..cf275b68be 100644 --- a/Koha/Suggestions.pm +++ b/Koha/Suggestions.pm @@ -22,7 +22,6 @@ use Modern::Perl; use Carp; use Koha::Database; - use Koha::Suggestion; use base qw(Koha::Objects); @@ -33,11 +32,40 @@ Koha::Suggestions - Koha Suggestion object set class =head1 API -=head2 Class Methods +=head2 Class methods + +=head3 search_limited + + my $suggestions = Koha::Suggestions->search_limited( $params, $attributes ); + +Returns all the suggestions the logged in user is allowed to see. =cut -=head3 type +sub search_limited { + my ( $self, $params, $attributes ) = @_; + + my $resultset = $self; + + # filter on user branch + if ( C4::Context->preference('IndependentBranches') + && !C4::Context->IsSuperLibrarian() ) + { + # If IndependentBranches is set and the logged in user is not superlibrarian + # Then we want to filter by the user's library (i.e. cannot see suggestions + # from other libraries) + my $userenv = C4::Context->userenv; + + $resultset = $self->search({ branchcode => $userenv->{branch} }) + if $userenv && $userenv->{branch}; + } + + return $resultset->search( $params, $attributes); +} + +=head2 Internal methods + +=head3 _type =cut -- 2.39.5