[attributs] Nettoyage
This commit is contained in:
parent
ac4b0854b5
commit
d21b2375af
1 changed files with 23 additions and 10 deletions
31
attributs.py
31
attributs.py
|
@ -59,19 +59,31 @@ def attrify(val, attr, ldif, ctxt_check = True):
|
||||||
Doit effectuer les vérifications de contexte dans le *ldif* si
|
Doit effectuer les vérifications de contexte dans le *ldif* si
|
||||||
ctxt_check est vrai"""
|
ctxt_check est vrai"""
|
||||||
|
|
||||||
return val if isinstance(val, Attr) else CRANS_ATTRIBUTES[attr](val, ldif)
|
if isinstance(val, Attr):
|
||||||
|
return val
|
||||||
|
else:
|
||||||
|
return CRANS_ATTRIBUTES[attr](val, ldif, ctxt_check)
|
||||||
|
|
||||||
class Attr(object):
|
class Attr(object):
|
||||||
legend = "Human-readable description of attribute"
|
legend = "Human-readable description of attribute"
|
||||||
singlevalue = None
|
singlevalue = None
|
||||||
optional = None
|
optional = None
|
||||||
|
|
||||||
def __init__(self, val, ldif):
|
def __init__(self, val, ldif, ctxt_check):
|
||||||
|
"""Crée un nouvel objet représentant un attribut.
|
||||||
|
|
||||||
|
val: valeur de l'attribut
|
||||||
|
ldif: objet contenant l'attribut (permet de faire les validations sur l'environnement)
|
||||||
|
ctxt_check: effectue les validations
|
||||||
|
"""
|
||||||
|
self.value = None
|
||||||
assert isinstance(val, unicode)
|
assert isinstance(val, unicode)
|
||||||
self.parse_value(val)
|
self.parse_value(val)
|
||||||
self.validate(ldif)
|
if ctxt_check:
|
||||||
|
self.validate(ldif)
|
||||||
|
|
||||||
def parse_value(self, val):
|
def parse_value(self, val):
|
||||||
|
"""Transforme l'attribut pour travailler avec notre validateur"""
|
||||||
self.value = val
|
self.value = val
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
@ -80,9 +92,10 @@ class Attr(object):
|
||||||
def validate(self, ldif):
|
def validate(self, ldif):
|
||||||
"""validates:
|
"""validates:
|
||||||
vérifie déjà que ce qu'on a rentré est parsable"""
|
vérifie déjà que ce qu'on a rentré est parsable"""
|
||||||
self._check_cardinality(ldif)
|
own_values = ldif[self.__class__.__name__]
|
||||||
self._check_uniqueness(ldif)
|
self._check_cardinality(own_values)
|
||||||
self._check_users_restrictions(ldif)
|
self._check_uniqueness()
|
||||||
|
self._check_users_restrictions(own_values)
|
||||||
|
|
||||||
def normalize(self, values, uldif):
|
def normalize(self, values, uldif):
|
||||||
"normalizes"
|
"normalizes"
|
||||||
|
@ -99,10 +112,10 @@ class Attr(object):
|
||||||
def _check_type(self, values):
|
def _check_type(self, values):
|
||||||
"""Vérifie que les valeurs ont le bon type (nom est un mot, tel
|
"""Vérifie que les valeurs ont le bon type (nom est un mot, tel
|
||||||
est un nombre, etc...)"""
|
est un nombre, etc...)"""
|
||||||
for v in values:
|
for val in values:
|
||||||
assert isinstance(v, unicode)
|
assert isinstance(val, unicode)
|
||||||
|
|
||||||
def _check_uniqueness(self, values):
|
def _check_uniqueness(self):
|
||||||
"""Vérifie l'unicité dans la base de la valeur (mailAlias, chbre,
|
"""Vérifie l'unicité dans la base de la valeur (mailAlias, chbre,
|
||||||
etc...)"""
|
etc...)"""
|
||||||
pass
|
pass
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue