diff --git a/lc_ldap.py b/lc_ldap.py index 6ebbc8e..169fdc4 100644 --- a/lc_ldap.py +++ b/lc_ldap.py @@ -41,6 +41,7 @@ from ldap_locks import CransLock uri = 'ldapi:///' #'ldap://ldap.adm.crans.org/' base_dn = 'ou=data,dc=crans,dc=org' +log_dn = "cn=log" def is_actif(sanction): """Retourne True ou False suivant si la sanction fournie (chaƮne @@ -218,6 +219,15 @@ class lc_ldap(ldap.ldapobject.LDAPObject): now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M : ') return unicode(now) + msg + def search_historique(self, dn): + res = self.search_s(log_dn, 2, 'reqDN=%s' % dn) + res.sort((lambda a, b: cmp(a[1]['reqEnd'][0], b[1]['reqEnd'][0]))) + for cn, attrs in res: + if attrs['reqType'][0] == 'delete': + print "%s deleted %s" % (attrs['reqAuthzID'][0], attrs['reqDN'][0]) + elif attrs['reqType'][0] == 'modify': + print "%s modified %s (%s)" % (attrs['reqAuthzID'][0], attrs['reqDN'][0], + "/".join(attrs['reqMod'])) # ? def reconnect(self, conn=None):