diff --git a/lc_ldap.py b/lc_ldap.py index 3a5d296..37925fd 100644 --- a/lc_ldap.py +++ b/lc_ldap.py @@ -70,6 +70,9 @@ def ldif_to_uldif(ldif): uldif[attr] = [ unicode(val, 'utf-8') for val in vals ] return uldif +def lc_ldap_test(): + return lc_ldap(dn='cn=admin,dc=crans,dc=org', cred='75bdb64f32') + class lc_ldap(ldap.ldapobject.LDAPObject): def __init__(self, dn=None, user=None, cred=None, uri=uri): """Initialise la connexion ldap, @@ -295,13 +298,12 @@ class CransLdapObject: def check_cardinality(self, attr, vals): """Vérifie qu'il y a un nombre correct de valeur =1, <=1, {0,1}, etc...""" - if attr in self.ufields: - if len(vals) != 1: - raise ValueError('%s doit avoir exactement une valeur' % attr) - - if attr in self.ofields: + if CRANS_ATTRIBUTES[attr]['isunique']: if len(vals) > 1: raise ValueError('%s doit avoir au maximum une valeur' % attr) + if not CRANS_ATTRIBUTES[attr]['isoptional']: + if len(vals) = 0: + raise ValueError('%s doit avoir au moins une valeur' % attr) def check_type(self, attr, vals): """Vérifie que les valeurs ont le bon type (nom est un mot, tel @@ -324,6 +326,7 @@ class CransLdapObject: pass def _gen_hist(self, modifs): + # XXX - Kill it! l'historique devrait être généré par ldap """Genère l'historique des modifications apportées. Cette fonction n'est là que pour de la rétro-compatibilité, normalement les modifications sont automatiquement loggées."""