From 3feb9763498158671889deb820c499b278ea7cab 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 --- Koha/Suggestions.pm | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/Koha/Suggestions.pm b/Koha/Suggestions.pm index 03262bb5f1..5fadfd163b 100644 --- a/Koha/Suggestions.pm +++ b/Koha/Suggestions.pm @@ -21,7 +21,6 @@ use Modern::Perl; use Koha::Database; - use Koha::Suggestion; use base qw(Koha::Objects); @@ -32,11 +31,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.20.1