JBAS-886 remoteauth/ezproxy checks expire date
authorBill Erickson <berickxx@gmail.com>
Tue, 29 Sep 2015 21:50:31 +0000 (17:50 -0400)
committerBill Erickson <berickxx@gmail.com>
Thu, 21 Mar 2019 19:46:23 +0000 (15:46 -0400)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Open-ILS/examples/remoteauth.cgi

index 94959d2..675d3f9 100755 (executable)
@@ -26,6 +26,9 @@ use warnings;
 
 use CGI;
 use Digest::MD5 qw(md5_hex);
+use DateTime;
+use DateTime::Format::ISO8601;
+use OpenSRF::Utils qw/:datetime/;
 
 use OpenSRF::System;
 use OpenSRF::AppSession;
@@ -94,15 +97,26 @@ if (!($u || $usrname || $barcode) || !$p) {
         and $user->active eq 't' 
         and $user->passwd eq md5_hex($p)) {
 
-        $e->requestor($user);
-        if ($e->allowed('ACCESS_EBOOKS_AND_DATABASES', $user->home_ou)) {
+        my $expire =
+            DateTime::Format::ISO8601->new->parse_datetime(
+                cleanse_ISO8601($user->expire_date));
 
-            OpenILS::Application::AppUtils
-                ->log_user_activity($user->id, $agent, 'verify');
+        if ($expire < DateTime->now) {
+            print '+NO';
 
-            print '+VALID';
         } else {
-            print '+NO';
+
+            $e->requestor($user);
+            if ($e->allowed('ACCESS_EBOOKS_AND_DATABASES', $user->home_ou)) {
+
+                OpenILS::Application::AppUtils
+                    ->log_user_activity($user->id, $agent, 'verify');
+
+                print '+VALID';
+
+            } else {
+                print '+NO';
+            }
         }
     } else {
         print '+NO';