[lc_ldap, attributs] les Attr contiennent aussi les valeurs
This commit is contained in:
parent
5f3c3d56fb
commit
85c513a1aa
2 changed files with 95 additions and 58 deletions
90
attributs.py
90
attributs.py
|
@ -50,21 +50,39 @@ def validate_mac(value):
|
|||
"""Vérifie qu'une adresse mac est valide"""
|
||||
return True
|
||||
|
||||
class Attr:
|
||||
def attrify(val, attr, ldif, ctxt_check = True):
|
||||
"""Transforme un n'importe quoi en Attr.
|
||||
|
||||
Doit effectuer les normalisations et sanity check si un str ou un
|
||||
unicode est passé en argument.
|
||||
Devrait insulter en cas de potentiel problème d'encodage.
|
||||
Doit effectuer les vérifications de contexte dans le *ldif* si
|
||||
ctxt_check est vrai"""
|
||||
|
||||
return val if isinstance(val, Attr) else CRANS_ATTRIBUTES[attr](val, ldif)
|
||||
|
||||
class Attr(object):
|
||||
legend = "Human-readable description of attribute"
|
||||
singlevalue = None
|
||||
optional = None
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
def __init__(self, val, ldif):
|
||||
assert isinstance(val, unicode)
|
||||
self.parse_value(val)
|
||||
self.validate(ldif)
|
||||
|
||||
def validate(self, values, uldif):
|
||||
"validates"
|
||||
self._check_cardinality(values)
|
||||
self._check_type(values)
|
||||
self._check_uniqueness(values)
|
||||
self._check_values(values)
|
||||
self._check_users_restrictions(values)
|
||||
def parse_value(self, val):
|
||||
self.value = val
|
||||
|
||||
def __str__(self):
|
||||
unicode.encode(unicode(self), 'utf-8')
|
||||
|
||||
def validate(self, ldif):
|
||||
"""validates:
|
||||
vérifie déjà que ce qu'on a rentré est parsable"""
|
||||
self._check_cardinality(ldif)
|
||||
self._check_uniqueness(ldif)
|
||||
self._check_users_restrictions(ldif)
|
||||
|
||||
def normalize(self, values, uldif):
|
||||
"normalizes"
|
||||
|
@ -271,31 +289,31 @@ class historique(Attr):
|
|||
|
||||
|
||||
CRANS_ATTRIBUTES= {
|
||||
'objectClass' : objectClass(),
|
||||
'nom' : nom(),
|
||||
'prenom' : prenom(),
|
||||
'tel' : tel(),
|
||||
'paiement' : paiement(),
|
||||
'carteEtudiant' : carteEtudiant(),
|
||||
'mailAlias' : mailAlias(),
|
||||
'canonicalAlias' : canonicalAlias(),
|
||||
'etudes' : etudes(),
|
||||
'chbre' : chbre(),
|
||||
'droits' : droits(),
|
||||
'solde' : solde(),
|
||||
'mid' : mid(),
|
||||
'hostAlias' : hostAlias(),
|
||||
'ipsec' : ipsec(),
|
||||
'puissance' : puissance(),
|
||||
'canal' : canal(),
|
||||
'portTCPout' : portTCPout(),
|
||||
'portTCPin' : portTCPin(),
|
||||
'portUDPout' : portUDPout(),
|
||||
'portUDPin' : portUDPin(),
|
||||
'prise' : prise(),
|
||||
'cid' : cid(),
|
||||
'responsable' : responsable(),
|
||||
'blacklist' : blacklist(),
|
||||
'historique' : historique()
|
||||
'objectClass' : objectClass,
|
||||
'nom' : nom,
|
||||
'prenom' : prenom,
|
||||
'tel' : tel,
|
||||
'paiement' : paiement,
|
||||
'carteEtudiant' : carteEtudiant,
|
||||
'mailAlias' : mailAlias,
|
||||
'canonicalAlias' : canonicalAlias,
|
||||
'etudes' : etudes,
|
||||
'chbre' : chbre,
|
||||
'droits' : droits,
|
||||
'solde' : solde,
|
||||
'mid' : mid,
|
||||
'hostAlias' : hostAlias,
|
||||
'ipsec' : ipsec,
|
||||
'puissance' : puissance,
|
||||
'canal' : canal,
|
||||
'portTCPout' : portTCPout,
|
||||
'portTCPin' : portTCPin,
|
||||
'portUDPout' : portUDPout,
|
||||
'portUDPin' : portUDPin,
|
||||
'prise' : prise,
|
||||
'cid' : cid,
|
||||
'responsable' : responsable,
|
||||
'blacklist' : blacklist,
|
||||
'historique' : historique
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue