From c1d05a7c730eb430f0d564b754caba1e7a3ee3b8 Mon Sep 17 00:00:00 2001 From: Pedro Amorim Date: Thu, 10 Apr 2025 13:50:58 +0000 Subject: [PATCH] Bug 36197: Refactor -> opac_available_backends method Signed-off-by: David Nind --- Koha/ILL/Request/Config.pm | 20 ++++++++++++++++++++ opac/opac-illrequests.pl | 5 ++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/Koha/ILL/Request/Config.pm b/Koha/ILL/Request/Config.pm index 0b14ec76d58..26df6630d33 100644 --- a/Koha/ILL/Request/Config.pm +++ b/Koha/ILL/Request/Config.pm @@ -171,6 +171,26 @@ sub installed_backends { return [ grep { !/Standard/ } @{ $self->available_backends } ]; } +=head3 opac_available_backends + +Return a list of backends available in the OPAC + +=cut + +sub opac_available_backends { + my ( $self, $loggedinuser ) = @_; + my $reduced = C4::Context->preference('ILLOpacbackends'); + my $backends = $self->available_backends($reduced); + if ( !$loggedinuser && C4::Context->preference('ILLOpacUnauthenticatedRequest') ) { + foreach my $backend ( @{$backends} ) { + my $loaded_b = Koha::ILL::Request->new->load_backend($backend); + @$backends = grep { !/$backend/ } @$backends + if ( $loaded_b->_backend_capability('opac_unauthenticated_ill_requests') == 0 ); + } + } + return $backends; +} + =head3 has_branch Return whether a 'branch' block is defined diff --git a/opac/opac-illrequests.pl b/opac/opac-illrequests.pl index 741442b0fee..3e3d5c025d7 100755 --- a/opac/opac-illrequests.pl +++ b/opac/opac-illrequests.pl @@ -58,11 +58,10 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( ); # Are we able to actually work? -my $reduced = C4::Context->preference('ILLOpacbackends'); -my $backends = Koha::ILL::Request::Config->new->available_backends($reduced); +my $patron = Koha::Patrons->find($loggedinuser); +my $backends = Koha::ILL::Request::Config->new->opac_available_backends($patron); my $backends_available = ( scalar @{$backends} > 0 ); $template->param( backends_available => $backends_available ); -my $patron = Koha::Patrons->find($loggedinuser); my $op = Koha::ILL::Request->get_op_param_deprecation( 'opac', $params ); -- 2.39.5