From 1c14ccd8bd8f773b411158eec32b006cfe487d72 Mon Sep 17 00:00:00 2001 From: Julian Maurice Date: Wed, 31 Aug 2016 15:27:44 +0200 Subject: [PATCH] Bug 17229: Check if patron is expired in CanItemBeReserved This way, calls to ILS-DI HoldTitle and HoldItem do this check too Added test plan to commit message : -Set Syspref BlockExpiredPatronOpacActions to "ON", -Set a patron's category variable "Block expired patrons" to "Follow SysPref" or -"Block" (ideally test both). -Get the id of a patron from this category (ie : 1234). -Set this patron's expiration date to a date earlier than today. -Get a biblionumber which can be reserved (ie : 5678). Put the following string in your webbrowser (replacing OpacBaseUrl, 1234 and 5678 by your own values) : http://[OpacBaseUrl]/cgi-bin/koha/ilsdi.pl?service=HoldTitle&patron_id=1234&bib_id=5678&request_location='127.0.0.1' Should not create a new hold for the patron and report an error. Signed-off-by: Brendan Gallagher --- C4/ILSDI/Services.pm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/C4/ILSDI/Services.pm b/C4/ILSDI/Services.pm index afe3ca772e..eaa37cd4d3 100644 --- a/C4/ILSDI/Services.pm +++ b/C4/ILSDI/Services.pm @@ -655,6 +655,9 @@ sub HoldTitle { my $patron = Koha::Patrons->find( $borrowernumber ); return { code => 'PatronNotFound' } unless $patron; + # Check for patron expired, category and syspref settings + return { code => 'PatronExpired' } if ($patron->category->effective_BlockExpiredPatronOpacActions && $patron->is_expired); + # Get the biblio record, or return an error code my $biblionumber = $cgi->param('bib_id'); my $biblio = Koha::Biblios->find( $biblionumber ); @@ -736,6 +739,9 @@ sub HoldItem { my $patron = Koha::Patrons->find( $borrowernumber ); return { code => 'PatronNotFound' } unless $patron; + # Check for patron expired, category and syspref settings + return { code => 'PatronExpired' } if ($patron->category->effective_BlockExpiredPatronOpacActions && $patron->is_expired); + # Get the biblio or return an error code my $biblionumber = $cgi->param('bib_id'); my $biblio = Koha::Biblios->find( $biblionumber ); -- 2.13.7