Make loginExpirationTime attribute great again
authorDan Scott <dscott@laurentian.ca>
Thu, 27 Oct 2016 15:15:50 +0000 (11:15 -0400)
committerDan Scott <dscott@laurentian.ca>
Thu, 27 Oct 2016 15:46:14 +0000 (11:46 -0400)
If the LDAP record has this attribute, it should trump everything.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
tools/patron-load/ldap_osrf_sync

index 8f2a418..188899d 100755 (executable)
@@ -132,9 +132,17 @@ class User:
         """
 
         expiry_date = '%d-09-30' % (datetime.date.today().year + 1)
+        exp_att = self._simple_map('loginExpirationTime')
+
+        # Go with the LDAP-set expiry date
+        if exp_att:
+            expiry_date = "%s-%s-%s" % (exp_att[:4], exp_att[4:6], exp_att[6:8])
         # Faculty and staff get a long time
-        if self.profile == 11 or self.profile == 14:
+        elif self.profile == 11 or self.profile == 14:
             expiry_date = '%d-09-30' % (datetime.date.today().year + 8)
+        # Expire the visiting students Sept. 30th
+        elif self.affiliation == 'visitor':
+            expiry_date = '%d-09-30' % (datetime.date.today().year + 1)
 
         return expiry_date
 
@@ -572,7 +580,7 @@ def ldap_query(con, auth):
         'lulLibraryBarcode', 'createTimestamp', 'lulAffiliation',
         'lulStudentLevel', 'lulPrimaryAffiliation', 'cn', 'mail',
         'givenName', 'sn', 'lulColleagueId', 'preferredLanguage',
-        'lulModifyTimestamp'
+        'lulModifyTimestamp', 'loginExpirationTime'
     ]
 
     if (ARGS.query_date):