Merge branch 'master' of charybde.crans.org:/git/ldap
This commit is contained in:
commit
3b09c98c5b
2 changed files with 21 additions and 17 deletions
|
@ -103,6 +103,7 @@ class AttrsDict(dict) :
|
||||||
super(AttrsDict, self).__init__(ldif)
|
super(AttrsDict, self).__init__(ldif)
|
||||||
self._conn = conn
|
self._conn = conn
|
||||||
self._parent = Parent
|
self._parent = Parent
|
||||||
|
self._iterator = None
|
||||||
|
|
||||||
def __getitem__(self, attr):
|
def __getitem__(self, attr):
|
||||||
values = super(AttrsDict, self).__getitem__(attr)
|
values = super(AttrsDict, self).__getitem__(attr)
|
||||||
|
@ -134,6 +135,9 @@ class AttrsDict(dict) :
|
||||||
except KeyError:
|
except KeyError:
|
||||||
return default_value
|
return default_value
|
||||||
|
|
||||||
|
def items(self):
|
||||||
|
return [(key, self[key]) for key in self]
|
||||||
|
|
||||||
class Attr(object):
|
class Attr(object):
|
||||||
"""Objet représentant un attribut.
|
"""Objet représentant un attribut.
|
||||||
|
|
||||||
|
|
34
lc_ldap.py
34
lc_ldap.py
|
@ -105,16 +105,16 @@ def ldif_to_uldif(ldif):
|
||||||
uldif[attr] = [ unicode(val, 'utf-8') for val in vals ]
|
uldif[attr] = [ unicode(val, 'utf-8') for val in vals ]
|
||||||
return uldif
|
return uldif
|
||||||
|
|
||||||
def ldif_to_cldif(ldif, conn):
|
#def ldif_to_cldif(ldif, conn):
|
||||||
"""Transforme un dictionnaire renvoyé par python-ldap, en
|
# """Transforme un dictionnaire renvoyé par python-ldap, en
|
||||||
un dictionnaire dont les valeurs sont des instances de Attr
|
# un dictionnaire dont les valeurs sont des instances de Attr
|
||||||
Lorsqu'on récupère le ldif de la base ldap, on n'a pas besoin
|
# Lorsqu'on récupère le ldif de la base ldap, on n'a pas besoin
|
||||||
de faire de tests...
|
# de faire de tests...
|
||||||
"""
|
# """
|
||||||
cldif = {}
|
# cldif = {}
|
||||||
for attr, vals in ldif.items():
|
# for attr, vals in ldif.items():
|
||||||
cldif[attr] = [ attributs.attrify(val, attr, conn, ldif) for val in vals]
|
# cldif[attr] = [ attributs.attrify(val, attr, conn, ldif) for val in vals]
|
||||||
return cldif
|
# return cldif
|
||||||
|
|
||||||
def cldif_to_ldif(cldif):
|
def cldif_to_ldif(cldif):
|
||||||
"""
|
"""
|
||||||
|
@ -324,15 +324,16 @@ class lc_ldap(ldap.ldapobject.LDAPObject, object):
|
||||||
--Non implémenté !"""
|
--Non implémenté !"""
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
||||||
def _create_entity(self, dn, uldif):
|
def _create_entity(self, dn, ldif):
|
||||||
'''Crée une nouvelle entité ldap en ``dn``, avec attributs ``ldif``:
|
'''Crée une nouvelle entité ldap avec le dn ``dn`` et les
|
||||||
uniquement en unicode'''
|
attributs de ``ldif``. Attention, ldif doit contenir des
|
||||||
|
données encodées.'''
|
||||||
# Conversion en cldif pour vérification des valeurs
|
# Conversion en cldif pour vérification des valeurs
|
||||||
cldif = ldif_to_cldif(uldif, self)
|
cldif = attributs.AttrsDict(self, ldif, Parent=None)
|
||||||
# Conversion en ascii
|
# Conversion en ascii
|
||||||
ldif = cldif_to_ldif(cldif)
|
data = cldif_to_ldif(cldif)
|
||||||
# Renvoi du CransLdapObject
|
# Renvoi du CransLdapObject
|
||||||
return new_cransldapobject(self, dn, 'rw', ldif)
|
return new_cransldapobject(self, dn, 'rw', data)
|
||||||
|
|
||||||
def _find_id(self, attr, plage=None):
|
def _find_id(self, attr, plage=None):
|
||||||
'''Trouve un id libre. Si une plage est fournie, cherche
|
'''Trouve un id libre. Si une plage est fournie, cherche
|
||||||
|
@ -489,7 +490,6 @@ class CransLdapObject(object):
|
||||||
# est dans la base. On attrify paresseusement au moment où on utilise un attribut
|
# est dans la base. On attrify paresseusement au moment où on utilise un attribut
|
||||||
|
|
||||||
self._modifs = None # C'est là qu'on met les modifications
|
self._modifs = None # C'est là qu'on met les modifications
|
||||||
self._modifs_unchecked = []
|
|
||||||
self.dn = dn
|
self.dn = dn
|
||||||
|
|
||||||
orig = {}
|
orig = {}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue