@@ -, +, @@ cd /kohadevbox/koha/Koha/Illbackends/FreeForm git checkout reorganize_ILL koha-plack --restart kohadev --- Koha/ILL/Request.pm | 26 +++++++++++++++++++ .../bootstrap/en/modules/opac-illrequests.tt | 4 +-- opac/opac-illrequests.pl | 11 ++++---- 3 files changed, 34 insertions(+), 7 deletions(-) --- a/Koha/ILL/Request.pm +++ a/Koha/ILL/Request.pm @@ -2104,6 +2104,32 @@ sub strings_map { return $strings; } +=head3 can_patron_place_ill_in_opac + + my $can_patron_place_ill_in_opac = Koha::Illrequest->can_patron_place_ill_in_opac($patron); + +Returns whether the given patron can place an ILL request in OPAC + +=over + +=item patron + +Patron object + +=back + +=cut + +sub can_patron_place_ill_in_opac { + my ( $self, $patron ) = @_; + + return 0 + unless $patron->_result->categorycode->can_place_ill_in_opac + && !( $patron->is_expired + && $patron->category->effective_BlockExpiredPatronOpacActions_contains('ill_request') ); + return 1; +} + =head3 get_op_param_deprecation my $op = $req->check_url_param_deprecation($params); --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-illrequests.tt +++ a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-illrequests.tt @@ -117,7 +117,7 @@

Interlibrary loan requests

[% INCLUDE messages %] - [% IF can_place_ill_in_opac %] + [% IF can_patron_place_ill_in_opac %] [% END %] - [% IF can_place_ill_in_opac %] + [% IF can_patron_place_ill_in_opac %]
--- a/opac/opac-illrequests.pl +++ a/opac/opac-illrequests.pl @@ -73,7 +73,8 @@ if ( $illrequest_id = $params->{illrequest_id} ) { } } -if ( ( $op eq 'cud-create' || $op eq 'cancreq' || $op eq 'cud-update' ) && !$patron->_result->categorycode->can_place_ill_in_opac ) { +my $can_patron_place_ill_in_opac = Koha::ILL::Request->can_patron_place_ill_in_opac($patron); +if ( ( $op eq 'cud-create' || $op eq 'cancreq' || $op eq 'cud-update' ) && !$can_patron_place_ill_in_opac ) { print $query->redirect('/cgi-bin/koha/errors/403.pl'); exit; } @@ -181,10 +182,10 @@ if ( $op eq 'list' ) { } $template->param( - can_place_ill_in_opac => $patron->_result->categorycode->can_place_ill_in_opac, - message => $params->{message}, - illrequestsview => 1, - op => $op + can_patron_place_ill_in_opac => $can_patron_place_ill_in_opac, + message => $params->{message}, + illrequestsview => 1, + op => $op ); output_html_with_http_headers $query, $cookie, $template->output, undef, { force_no_caching => 1 }; --