Ajout de la méthode history_add pour ajouter des lignes dans l'historique

This commit is contained in:
Vincent Le Gallic 2012-11-29 01:50:42 +01:00
parent c6f49d83aa
commit 1d48d08b18

View file

@ -48,6 +48,11 @@ uri = 'ldap://ldap.adm.crans.org/'
base_dn = 'ou=data,dc=crans,dc=org' base_dn = 'ou=data,dc=crans,dc=org'
log_dn = "cn=log" log_dn = "cn=log"
# Pour enregistrer dans l'historique, on a besoin de savoir qui exécute le script
# Si le script a été exécuté via un sudo, la variable SUDO_USER (l'utilisateur qui a effectué le sudo)
# est plus pertinente que USER (qui sera root)
current_user = os.getenv("SUDO_USER") or os.getenv("USER")
# Quand on a besoin du fichier de secrets # Quand on a besoin du fichier de secrets
def import_secrets(): def import_secrets():
if not "/etc/crans/secrets/" in sys.path: if not "/etc/crans/secrets/" in sys.path:
@ -360,6 +365,18 @@ class CransLdapObject(object):
return self.ofields + self.xfields + self.ufields + self.mfields return self.ofields + self.xfields + self.ufields + self.mfields
fields = property(_get_fields) fields = property(_get_fields)
def history_add(self, login, chain):
"""Ajoute une ligne à l'historique de l'objet.
###ATTENTION : C'est un kludge pour pouvoir continuer à faire "comme avant",
### mais on devrait tout recoder pour utiliser l'historique LDAP"""
assert isinstance(login, str) or isinstance(login, unicode)
assert isinstance(chain, unicode)
new_line = u"%s, %s : %s" % (time.strftime("%d/%m/%Y %H:%M"), login, chain)
# Attention, le __setitem__ est surchargé, mais pas .append sur l'historique
self["historique"] = self["historique"] + [new_line]
def save(self): def save(self):
"""Sauvegarde dans la base les modifications apportées à l'objet. """Sauvegarde dans la base les modifications apportées à l'objet.
Interne: Vérifie que self._modifs contient des valeurs correctes et Interne: Vérifie que self._modifs contient des valeurs correctes et