[lc_ldap] __setitem__ correct pour CransLdapObject

This commit is contained in:
Nicolas Dandrimont 2010-12-07 22:50:52 +01:00
parent 463896ffc3
commit 5b54072769

View file

@ -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):