X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;ds=sidebyside;f=UDLdap.py;h=b546112af6a3abb636e5f0a4b0f62a6fd00cb4c4;hb=9868a2b741c1b82156f3d75c8dbc74ed8f5521f1;hp=97fd2fbdcb665800a3746b3f6c79f32a7d10bb2e;hpb=ab9b6db10f47351659f37b0d75acfad2d40d2493;p=mirror%2Fuserdir-ldap.git diff --git a/UDLdap.py b/UDLdap.py index 97fd2fb..b546112 100644 --- a/UDLdap.py +++ b/UDLdap.py @@ -43,7 +43,7 @@ class Account: elif key in self.defaults: return self.defaults[key] else: - raise IndexError + raise IndexError, "No such key: %s (dn: %s)"%(key, self.dn) def __contains__(self, key): return key in self.attributes @@ -55,15 +55,17 @@ class Account: # not locked locked, just reset to something invalid like {crypt}*SSLRESET* is still active def pw_active(self): - if self['userPassword'] == '{crypt}*LK*': + if not 'userPassword' in self: return False - if self['userPassword'].startswith("{crypt}!"): + if self['userPassword'].upper() == '{CRYPT}*LK*': + return False + if self['userPassword'].upper().startswith("{CRYPT}!"): return False return True def get_password(self): p = self['userPassword'] - if not p.startswith('{crypt}') or len(p) > 50: + if not p.upper().startswith('{CRYPT}') or len(p) > 50: return p else: return p[7:]