[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
This commit is contained in:
parent
35f9c36461
commit
c41aac0de0
1 changed files with 8 additions and 1 deletions
|
@ -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):
|
||||||
# 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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue