From ab9cbbf698f8659a6822df60f1bb1bb4cc81ac24 Mon Sep 17 00:00:00 2001 From: Lari Taskula Date: Tue, 21 Oct 2025 15:03:50 +0300 Subject: [PATCH] Bug 27734: Add C4::Output::redirect_if_opac_hidden() To test: 1. prove t/db_dependent/Output.t --- C4/Output.pm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/C4/Output.pm b/C4/Output.pm index 3aaf1c05838..894b93194de 100644 --- a/C4/Output.pm +++ b/C4/Output.pm @@ -46,6 +46,7 @@ BEGIN { setlanguagecookie getlanguagecookie pagination_bar parametrized_url output_html_with_http_headers output_ajax_with_http_headers output_with_http_headers output_and_exit_if_error output_and_exit output_error + redirect_if_opac_hidden redirect_if_opac_suppressed ); } @@ -430,6 +431,32 @@ sub parametrized_url { return $ret; } +=item redirect_if_opac_hidden + + redirect_if_opac_hidden( $query, $biblio, $patron ); + +For a given I and I object, it handles redirection +if it is hidden from the OPAC. + +=cut + +sub redirect_if_opac_hidden { + my ( $query, $biblio, $patron ) = @_; + + if ( $patron and $patron->category->override_hidden_items ) { + return; + } + + if ( $biblio->hidden_in_opac( { rules => C4::Context->yaml_preference('OpacHiddenItems') } ) ) { + if ( C4::Context->preference("OpacHiddenRecordRedirect") ) { + print $query->redirect("/cgi-bin/koha/opac-blocked.pl?hidden=1"); + } else { + print $query->redirect('/cgi-bin/koha/errors/404.pl'); + } + C4::Auth::safe_exit(); + } +} + =item redirect_if_opac_suppressed redirect_if_opac_suppressed( $query, $biblio ) -- 2.34.1