From f31ae28b754ee8c16131ad1cab63c267bc96d80c Mon Sep 17 00:00:00 2001
From: Thomas Berezansky <tsbere@mvlc.org>
Date: Sun, 17 Jul 2011 20:28:14 -0400
Subject: [PATCH] Make inactive cards/patrons "not exist" via SIP2

And make sure if we do get a deleted patron for some reason they are ignored too.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
---
 Open-ILS/src/perlmods/lib/OpenILS/SIP/Patron.pm | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/Open-ILS/src/perlmods/lib/OpenILS/SIP/Patron.pm b/Open-ILS/src/perlmods/lib/OpenILS/SIP/Patron.pm
index c3dbb2133f..17389fa0b8 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS/SIP/Patron.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS/SIP/Patron.pm
@@ -85,7 +85,7 @@ sub new {
 
         my $card = $e->search_actor_card([{barcode => $patron_id}, $usr_flesh])->[0];
 
-        if(!$card) {
+        if(!$card or !$U->is_true($card->active)) {
             syslog("LOG_WARNING", "No such patron barcode: $patron_id");
             return undef;
         }
@@ -96,11 +96,16 @@ sub new {
 	    $user = $e->retrieve_actor_user([$patron_id, $usr_flesh]);
     }
 
-    if(!$user) {
+    if(!$user or $U->is_true($user->deleted)) {
         syslog("LOG_WARNING", "OILS: Unable to find patron %s => %s", $key, $patron_id);
         return undef;
     }
 
+    if(!$U->is_true($user->active)) {
+        syslog("LOG_WARNING", "OILS: Patron is inactive %s => %s", $key, $patron_id);
+        return undef;
+    }
+
     # now grab the user's penalties
 
     $self->flesh_user_penalties($user, $e) unless $args{slim_user};
-- 
2.11.0