Bug 41057: Return 404 if creating backend is not an OPAC backend

Test plan, ktd:
1) Enable ILLModule
2) Install an additional backend plugin e.g. 'RapidILL':
  https://github.com/openfifth/koha-ill-rapidill/releases/tag/v2.2.5
3) Restart plack if you have to:
$ koha-plack --restart kohadev
4) Edit the ILLOpacbackends system preference to just 'Standard'.
5) Now, attempt to create a request with the installed backend directly:
  <opac_url>/cgi-bin/koha/opac-illrequests.pl?op=add_form&backend=RapidILL
6) Notice the form is shown. It shouldn't be, as the only OPAC back is Standard.
7) Apply patch. Repeat. You get a 404.

Signed-off-by: Nial Halford-Busby <n.halford-busby@lboro.ac.uk>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
This commit is contained in:
Pedro Amorim 2025-10-20 15:33:04 +00:00 committed by Lucas Gass
parent 9672351c41
commit 2d063d00d5
No known key found for this signature in database
GPG Key ID: 60B447398B0D36CA
1 changed files with 8 additions and 2 deletions

View File

@ -72,8 +72,14 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
);
# Are we able to actually work?
my $patron = Koha::Patrons->find($loggedinuser);
my $backends = Koha::ILL::Request::Config->new->opac_available_backends($patron);
my $patron = Koha::Patrons->find($loggedinuser);
my $backends = Koha::ILL::Request::Config->new->opac_available_backends($patron);
if ( $params->{backend} && !grep { $_ eq $params->{backend} } @$backends ) {
print $query->redirect("/cgi-bin/koha/errors/404.pl");
exit;
}
my $backends_available = ( scalar @{$backends} > 0 );
$template->param( backends_available => $backends_available );