Commit c41aac0d authored by Pierre-Elliott Bécue's avatar Pierre-Elliott Bécue

[objets] Bug en cas d'annulation

 * self._modifs = self.attrs met les deux AttrsDict dans le même état,
 ce qui fait qu'une modif de l'un se répercute sur l'autre.
 * On en profite pour créer une fonction .cancel
parent 35f9c364
...@@ -431,7 +431,7 @@ class CransLdapObject(object): ...@@ -431,7 +431,7 @@ class CransLdapObject(object):
except Exception as error: except Exception as error:
# On nettoie les locks # On nettoie les locks
self.conn.lockholder.purge(self.lockId) self.conn.lockholder.purge(self.lockId)
self._modifs = self.attrs self.cancel()
raise EnvironmentError("Impossible de modifier l'objet, peut-être n'existe-t-il pas ? %r" % error) raise EnvironmentError("Impossible de modifier l'objet, peut-être n'existe-t-il pas ? %r" % error)
# On programme le redémarrage des services # On programme le redémarrage des services
...@@ -440,6 +440,13 @@ class CransLdapObject(object): ...@@ -440,6 +440,13 @@ class CransLdapObject(object):
# Vérification des modifications. # Vérification des modifications.
self.check_modifs() self.check_modifs()
def cancel(self):
"""
Annule les changements en attente
"""
old_uldif = lc_ldap.ldif_to_uldif(self.conn.search_s(self.dn, ldap.SCOPE_BASE)[0][1])
self._modifs = attributs.AttrsDict(self.conn, old_uldif, Parent=self)
def check_modifs(self): def check_modifs(self):
""" """
Fonction qui vérifie que les modifications se sont bien Fonction qui vérifie que les modifications se sont bien
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment