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)
|
values = super(AttrsDict, self).__getitem__(attr)
|
||||||
if not isinstance(values, list):
|
if not isinstance(values, list):
|
||||||
values = [ values ]
|
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)]
|
output = []
|
||||||
self[attr] = values
|
for val in values:
|
||||||
return 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):
|
def get(self, value, default_value):
|
||||||
try:
|
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)
|
self.attrs = attributs.AttrsDict(conn, ldif, check_ctxt = False)
|
||||||
else:
|
else:
|
||||||
self.attrs = ldif
|
self.attrs = ldif
|
||||||
self._modifs = ldif_to_uldif(ldif)
|
self._modifs = attributs.AttrsDict(conn, ldif, check_ctxt = False)
|
||||||
self._modifs = ldif_to_cldif(self._modifs, conn, check_ctxt = False)
|
|
||||||
orig = ldif
|
orig = ldif
|
||||||
|
|
||||||
elif dn != base_dn:
|
elif dn != base_dn:
|
||||||
|
@ -485,7 +484,7 @@ class CransLdapObject(object):
|
||||||
# Pour test en cas de mode w ou rw
|
# Pour test en cas de mode w ou rw
|
||||||
orig = res[0][1]
|
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
|
# Je m'interroge sur la pertinence de cette partie, je pense qu'elle n'est
|
||||||
# pas utile. -- PEB 27/01/2013
|
# pas utile. -- PEB 27/01/2013
|
||||||
|
@ -503,8 +502,6 @@ class CransLdapObject(object):
|
||||||
nvals = [nldif[attr][v.index(v)] for v in vals ]
|
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)
|
raise EnvironmentError("λv. str(Attr(v)) n'est peut-être pas une projection (ie non idempotente):", attr, nvals, vals)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# def _get_fields(self):
|
# def _get_fields(self):
|
||||||
# """Renvoie la liste des champs LDAP de l'objet"""
|
# """Renvoie la liste des champs LDAP de l'objet"""
|
||||||
# return self.attribs
|
# return self.attribs
|
||||||
|
@ -547,8 +544,7 @@ class CransLdapObject(object):
|
||||||
raise EnvironmentError("Impossible de modifier l'objet, peut-être n'existe-t-il pas ?")
|
raise EnvironmentError("Impossible de modifier l'objet, peut-être n'existe-t-il pas ?")
|
||||||
|
|
||||||
# Vérification des modifications
|
# Vérification des modifications
|
||||||
self.attrs = ldif_to_uldif(self.conn.search_s(self.dn, 0)[0][1])
|
self.attrs = attributs.AttrDict(conn, self.conn.search_s(self.dn, 0)[0][1], check_ctxt=False)
|
||||||
self.attrs = ldif_to_cldif(self.attrs, self.conn, check_ctxt=False)
|
|
||||||
differences = []
|
differences = []
|
||||||
# On fait les différences entre les deux dicos
|
# On fait les différences entre les deux dicos
|
||||||
for attr in set(self.attrs.keys()).union(set(self._modifs.keys())):
|
for attr in set(self.attrs.keys()).union(set(self._modifs.keys())):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue