On n'oublie de retourner aussi les valeurs déjà attrifiées
This commit is contained in:
parent
0c0338719c
commit
b957a41cd7
2 changed files with 11 additions and 10 deletions
11
attributs.py
11
attributs.py
|
@ -102,9 +102,14 @@ class AttrsDict(dict) :
|
|||
values = super(AttrsDict, self).__getitem__(attr)
|
||||
if not isinstance(values, list):
|
||||
values = [ values ]
|
||||
values = [ attrify(unicode(val, 'utf-8'), attr, self._ldif, self._conn, self._check_ctxt) for val in values if not isinstance(val, Attr)]
|
||||
self[attr] = values
|
||||
return values
|
||||
output = []
|
||||
for val in values:
|
||||
if not isinstance(val, Attr):
|
||||
output.append(attrify(unicode(val, 'utf-8'), attr, self._ldif, self._conn, self._check_ctxt))
|
||||
else:
|
||||
output.append(val)
|
||||
self[attr] = output
|
||||
return output
|
||||
|
||||
def get(self, value, default_value):
|
||||
try:
|
||||
|
|
10
lc_ldap.py
10
lc_ldap.py
|
@ -468,8 +468,7 @@ class CransLdapObject(object):
|
|||
self.attrs = attributs.AttrsDict(conn, ldif, check_ctxt = False)
|
||||
else:
|
||||
self.attrs = ldif
|
||||
self._modifs = ldif_to_uldif(ldif)
|
||||
self._modifs = ldif_to_cldif(self._modifs, conn, check_ctxt = False)
|
||||
self._modifs = attributs.AttrsDict(conn, ldif, check_ctxt = False)
|
||||
orig = ldif
|
||||
|
||||
elif dn != base_dn:
|
||||
|
@ -485,7 +484,7 @@ class CransLdapObject(object):
|
|||
# Pour test en cas de mode w ou rw
|
||||
orig = res[0][1]
|
||||
|
||||
self._modifs = ldif_to_cldif(ldif_to_uldif(res[0][1]), conn, check_ctxt = False)
|
||||
self._modifs = attributs.AttrsDict(conn, res[0][1], check_ctxt = False)
|
||||
|
||||
# Je m'interroge sur la pertinence de cette partie, je pense qu'elle n'est
|
||||
# pas utile. -- PEB 27/01/2013
|
||||
|
@ -503,8 +502,6 @@ 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 (ie non idempotente):", attr, nvals, vals)
|
||||
|
||||
|
||||
|
||||
# def _get_fields(self):
|
||||
# """Renvoie la liste des champs LDAP de l'objet"""
|
||||
# return self.attribs
|
||||
|
@ -547,8 +544,7 @@ class CransLdapObject(object):
|
|||
raise EnvironmentError("Impossible de modifier l'objet, peut-être n'existe-t-il pas ?")
|
||||
|
||||
# Vérification des modifications
|
||||
self.attrs = ldif_to_uldif(self.conn.search_s(self.dn, 0)[0][1])
|
||||
self.attrs = ldif_to_cldif(self.attrs, self.conn, check_ctxt=False)
|
||||
self.attrs = attributs.AttrDict(conn, self.conn.search_s(self.dn, 0)[0][1], check_ctxt=False)
|
||||
differences = []
|
||||
# On fait les différences entre les deux dicos
|
||||
for attr in set(self.attrs.keys()).union(set(self._modifs.keys())):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue