Ajout d'infos sur les attributs
Pour l'intranet et un futur gest_crans
This commit is contained in:
parent
96705403a2
commit
7a644cdfa9
2 changed files with 78 additions and 5 deletions
68
attributs.py
68
attributs.py
|
@ -62,6 +62,14 @@ class Attr(object):
|
|||
can_modify = ['Nounou']
|
||||
"""La liste des droits qui suffisent à avoir le droit de modifier la valeur"""
|
||||
|
||||
can_view = ['Nounou', 'apprenti', 'self', 'parent', 'owner']
|
||||
"""Qui peut voir l'attribut. Par défaut, les nounous et les apprentis
|
||||
peuvent tout voir. Par transparence, et par utilité, on autorise par
|
||||
défaut l'adhérent à voir les données le concernant."""
|
||||
|
||||
category = 'other'
|
||||
"""Catégorie de l'attribut (pour affichage futur)"""
|
||||
|
||||
def __init__(self, val, ldif, conn, ctxt_check):
|
||||
"""Crée un nouvel objet représentant un attribut.
|
||||
|
||||
|
@ -135,6 +143,11 @@ class objectClass(Attr):
|
|||
optional = False
|
||||
legend = "entité"
|
||||
|
||||
can_modify = []
|
||||
""" Personne ne doit modifier de classe """
|
||||
|
||||
can_view = ['Nounou', 'apprenti']
|
||||
""" Internal purpose (et à fin pédagogique) """
|
||||
|
||||
def parse_value(self, val, ldif):
|
||||
if val not in [ 'top', 'posixAccount', 'shadowAccount', 'proprio',
|
||||
|
@ -160,16 +173,25 @@ class aid(intAttr):
|
|||
singlevalue = True
|
||||
optional = True
|
||||
legend = u"Identifiant de l'adhérent"
|
||||
category = 'id'
|
||||
|
||||
can_modify = []
|
||||
""" Personne ne devrait modifier un attribut d'identification """
|
||||
|
||||
can_view = ['Nounou', 'apprenti', 'cableurs']
|
||||
|
||||
class uid(Attr):
|
||||
singlevalue = True
|
||||
option = False
|
||||
legend = u"L'identifiant canonique de l'adhérent"
|
||||
category = 'perso'
|
||||
|
||||
class nom(Attr):
|
||||
singlevalue = True
|
||||
optional = False
|
||||
legend = "Nom"
|
||||
category = 'perso'
|
||||
can_modify = ["Nounou", "Cableur"]
|
||||
|
||||
def parse_value(self, val, ldif):
|
||||
if u'club' in ldif['objectClass']:
|
||||
|
@ -177,11 +199,12 @@ class nom(Attr):
|
|||
else:
|
||||
self.value = validate_name(val)
|
||||
|
||||
|
||||
class prenom(Attr):
|
||||
singlevalue = True
|
||||
optional = False
|
||||
legend = u"Prénom"
|
||||
category = 'perso'
|
||||
can_modify = ["Nounou", "Cableur"]
|
||||
|
||||
def parse_value(self, val, ldif):
|
||||
self.value = validate_name(val)
|
||||
|
@ -191,6 +214,7 @@ class tel(Attr):
|
|||
singlevalue = True
|
||||
optional = False
|
||||
legend = u"Téléphone"
|
||||
category = 'perso'
|
||||
can_modify = ["self", "Nounou", "Cableur"]
|
||||
|
||||
def parse_value(self, val, ldif):
|
||||
|
@ -212,9 +236,13 @@ class yearAttr(intAttr):
|
|||
class paiement(yearAttr):
|
||||
legend = u"Paiement"
|
||||
can_modify = ["Cableur", "Nounou", "tresorier"]
|
||||
category = 'perso'
|
||||
|
||||
class carteEtudiant(yearAttr):
|
||||
legend = u"Carte d'étudiant"
|
||||
category = 'perso'
|
||||
can_modify = ["Cableur", "Nounou", "tresorier"]
|
||||
|
||||
|
||||
|
||||
class mailAlias(Attr):
|
||||
|
@ -222,6 +250,7 @@ class mailAlias(Attr):
|
|||
optional = True
|
||||
legend = u"Alias mail"
|
||||
can_modify = ["self", "Cableur", "Nounou"]
|
||||
category = 'mail'
|
||||
|
||||
def parse_value(self, val, ldif):
|
||||
val = val.lower()
|
||||
|
@ -234,6 +263,7 @@ class canonicalAlias(Attr):
|
|||
singlevalue = True
|
||||
optional = False
|
||||
legend = u"Alias mail canonique"
|
||||
category = 'mail'
|
||||
|
||||
def parse_value(self, val, ldif):
|
||||
val = u".".join([ a.capitalize() for a in val.split(u'.', 1) ])
|
||||
|
@ -241,12 +271,12 @@ class canonicalAlias(Attr):
|
|||
raise ValueError("Alias mail invalide (%s)" % val)
|
||||
self.value = val
|
||||
|
||||
|
||||
class etudes(Attr):
|
||||
singlevalue = False
|
||||
optional = False
|
||||
legend = u"Études"
|
||||
can_modify = ["self", "Cableur", "Nounou"]
|
||||
category = 'perso'
|
||||
|
||||
def parse_value(self, val, ldif):
|
||||
# who cares
|
||||
|
@ -258,6 +288,7 @@ class chbre(Attr):
|
|||
optional = False
|
||||
legend = u"Chambre sur le campus"
|
||||
can_modify = ["self", "Cableur", "Nounou"]
|
||||
category = 'perso'
|
||||
|
||||
def parse_value(self, val, ldif):
|
||||
if self.ctxt_check: # Si ce n'est pas la peine de vérifier, on ne vérifie pas
|
||||
|
@ -285,6 +316,7 @@ class droits(Attr):
|
|||
optional = True
|
||||
legend = u"Droits sur les serveurs"
|
||||
can_modify = ["Nounou", "Bureau"]
|
||||
category = 'perso'
|
||||
|
||||
def parse_value(self, val, ldif):
|
||||
if val.lower() not in ['apprenti', 'nounou', 'cableur', 'tresorier', 'bureau',
|
||||
|
@ -308,6 +340,7 @@ class solde(Attr):
|
|||
self.value = solde
|
||||
|
||||
class dnsAttr(Attr):
|
||||
category = 'dns'
|
||||
def parse_value(self, dns, ldif):
|
||||
dns = dns.lower()
|
||||
name, net = dns.split('.', 1)
|
||||
|
@ -322,6 +355,7 @@ class host(dnsAttr):
|
|||
optional = False
|
||||
hname = legend = u"Nom d'hôte"
|
||||
can_modify = ["parent", "Nounou", "Cableur"]
|
||||
category = 'base_tech'
|
||||
|
||||
|
||||
class macAddress(Attr):
|
||||
|
@ -329,6 +363,7 @@ class macAddress(Attr):
|
|||
optional = False
|
||||
legend = u"Adresse physique de la carte réseau"
|
||||
hname = "Adresse MAC"
|
||||
category = 'base_tech'
|
||||
can_modify = ["parent", "Nounou", "Cableur"]
|
||||
|
||||
def parse_value(self, mac, ldif):
|
||||
|
@ -343,6 +378,7 @@ class ipHostNumber(Attr):
|
|||
optional = False
|
||||
legend = u"Adresse IPv4 de la machine"
|
||||
hname = "IPv4"
|
||||
category = 'base_tech'
|
||||
|
||||
def parse_value(self, ip, ldif):
|
||||
if ip == '<automatique>':
|
||||
|
@ -357,6 +393,7 @@ class mid(Attr):
|
|||
singlevalue = True
|
||||
optional = False
|
||||
legend = "Identifiant de machine"
|
||||
category = 'id'
|
||||
|
||||
def parse_value(self, mid, ldif):
|
||||
self.value = Mid(mid = int(mid))
|
||||
|
@ -374,21 +411,25 @@ class ipsec(Attr):
|
|||
singlevalue = False
|
||||
optional = True
|
||||
legend = u'Clef wifi'
|
||||
category = 'wifi'
|
||||
|
||||
class puissance(Attr):
|
||||
singlevalue = True
|
||||
optional = True
|
||||
legend = u"puissance d'émission pour les bornes wifi"
|
||||
category = 'wifi'
|
||||
|
||||
class canal(intAttr):
|
||||
singlevalue = True
|
||||
optional = True
|
||||
legend = u'Canal d\'émission de la borne'
|
||||
|
||||
category = 'wifi'
|
||||
|
||||
class portAttr(Attr):
|
||||
singlevalue = False
|
||||
optional = True
|
||||
legend = u'Ouverture de port'
|
||||
category = 'firewall'
|
||||
|
||||
def parse_value(self, port, ldif):
|
||||
if ":" in port:
|
||||
|
@ -435,6 +476,7 @@ class prise(Attr):
|
|||
singlevalue = True
|
||||
optional = True
|
||||
legend = u"Prise sur laquelle est branchée la machine"
|
||||
category = 'base_tech'
|
||||
|
||||
def parse_value(self, prise, ldif):
|
||||
### Tu es une Nounou, je te fais confiance
|
||||
|
@ -444,11 +486,13 @@ class cid(intAttr):
|
|||
singlevalue = True
|
||||
optional = True
|
||||
legend = u"Identifiant du club"
|
||||
category = 'id'
|
||||
|
||||
class responsable(Attr):
|
||||
singlevalue = True
|
||||
optional = True
|
||||
legend = u"Responsable du club"
|
||||
category = 'perso'
|
||||
|
||||
def get_respo(self):
|
||||
if self.value == None:
|
||||
|
@ -467,6 +511,7 @@ class blacklist(Attr):
|
|||
singlevalue = False
|
||||
optional = True
|
||||
legend = u"Blackliste"
|
||||
category = 'info'
|
||||
|
||||
def parse_value(self, bl, ldif):
|
||||
bl_debut, bl_fin, bl_type, bl_comm = bl.split('$')
|
||||
|
@ -491,24 +536,28 @@ class historique(Attr):
|
|||
singlevalue = False
|
||||
optional = True
|
||||
legend = u"Historique de l'objet"
|
||||
category = 'info'
|
||||
|
||||
class info(Attr):
|
||||
singlevalue = False
|
||||
optional = True
|
||||
legend = u"Quelques informations"
|
||||
category = 'info'
|
||||
can_modify = ["Nounou", "Cableur", "Bureau"]
|
||||
|
||||
class homepageAlias(Attr):
|
||||
singlevalue = True
|
||||
optional = True
|
||||
legend = u'Un alias pour la page personnelle'
|
||||
can_modify = ["WebMaster", "Nounou", "Cableur"]
|
||||
can_modify = ["Nounou", "Cableur"]
|
||||
category = 'webpage'
|
||||
|
||||
class charteMA(Attr):
|
||||
singlevalue = True
|
||||
optional = True
|
||||
legend= "Signale si l'adhérent a signé la charte de membres actifs"
|
||||
can_modify = ["Nounou", "Bureau"]
|
||||
category = 'perso'
|
||||
|
||||
def parse_value(self, signed, ldif):
|
||||
if signed.upper() not in ["TRUE", "FALSE"]:
|
||||
|
@ -569,16 +618,19 @@ class uidNumber(intAttr):
|
|||
singlevalue = True
|
||||
optional = True
|
||||
legend = "L'uid du compte de l'adherent"
|
||||
category = 'id'
|
||||
|
||||
class gidNumber(intAttr):
|
||||
singlevalue = True
|
||||
optional = True
|
||||
legend = "Le gid du compte de l'adhérent"
|
||||
category = 'id'
|
||||
|
||||
class gecos(Attr):
|
||||
singlevalue = True
|
||||
optional = True
|
||||
legend = "Le gecos"
|
||||
category = 'id'
|
||||
|
||||
def parse_value(self, gecos, ldif):
|
||||
a, b, c, d = gecos.split(',')
|
||||
|
@ -589,6 +641,7 @@ class mail(Attr):
|
|||
optional = False
|
||||
legend = "Le mail de l'adhérent"
|
||||
can_modify = ["self", "Nounou", "Cableur"]
|
||||
category = 'mail'
|
||||
|
||||
# XXX - to be implemented
|
||||
#def parse_value(self, mail, ldif):
|
||||
|
@ -597,20 +650,26 @@ class mail(Attr):
|
|||
class cn(Attr):
|
||||
singlevalue = True
|
||||
optional = False
|
||||
category = 'id'
|
||||
|
||||
class dn(Attr):
|
||||
singlevalue = True
|
||||
optional = False
|
||||
category = 'id'
|
||||
|
||||
class postalAddress(Attr):
|
||||
singlevalue = False
|
||||
optional = True
|
||||
can_modify = ["self", "Cableur", "Nounou", "Bureau"]
|
||||
legend = u"Adresse"
|
||||
category = 'perso'
|
||||
|
||||
class controle(Attr):
|
||||
singlevalue = True
|
||||
optional = False
|
||||
legend = u"Contrôle"
|
||||
can_modify = ["Tresorier", "Nounou"]
|
||||
category = 'perso'
|
||||
|
||||
def parse_value(self, ctrl, ldif):
|
||||
if ctrl not in [u"", u"c", u"p", u"cp", u"pc"]:
|
||||
|
@ -631,6 +690,7 @@ CRANS_ATTRIBUTES= {
|
|||
'prenom' : prenom,
|
||||
'tel' : tel,
|
||||
'paiement' : paiement,
|
||||
'controle': controle,
|
||||
'carteEtudiant' : carteEtudiant,
|
||||
'mailAlias' : mailAlias,
|
||||
'canonicalAlias' : canonicalAlias,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue