From 5b540727699113bec74a0d326a93353dbc8ce5d4 Mon Sep 17 00:00:00 2001 From: Nicolas Dandrimont Date: Tue, 7 Dec 2010 22:50:52 +0100 Subject: [PATCH] [lc_ldap] __setitem__ correct pour CransLdapObject --- lc_ldap.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lc_ldap.py b/lc_ldap.py index babbe15..bf8bac3 100644 --- a/lc_ldap.py +++ b/lc_ldap.py @@ -270,7 +270,6 @@ class CransLdapObject(object): self.attrs = ldif_to_uldif(self.attrs) if mode in ['w', 'rw']: - self._modifs = copy.deepcopy(self.attrs) self.attrs = ldif_to_cldif(self.attrs, conn, check_ctxt = False) ### Vérification que `λv. str(Attr(v))` est bien une projection oldif = res[0][1] @@ -284,7 +283,7 @@ class CransLdapObject(object): nvals = [nldif[attr][v.index(v)] for v in vals ] raise EnvironmentError("λv. str(Attr(v)) n'est peut-être pas une projection:", attr, nvals, vals) - # self._modifs = copy.deepcopy(self.attrs) + self._modifs = ldif_to_cldif(self.attrs, conn, check_ctxt = False) def save(self): "Vérifie que self._modifs contient des valeurs correctes et enregistre les modifications" @@ -325,9 +324,10 @@ class CransLdapObject(object): return [ unicode(v) for v in self.attrs[attr] ] def __setitem__(self, attr, values): + if self.mode not in ['w', 'rw']: + raise ValueError("Objet en lecture seule") if not isinstance(values, list): values = [ values ] - self._modifs[attr] = values self._modifs[attr] = [ attrify(val, attr, self._modifs, self.conn) for val in values ] def search_historique(self, ign_fields=HIST_IGNORE_FIELDS):