[attributs] capitalisation correcte des droits/alias canonique

This commit is contained in:
adg@crans.org 2010-10-23 12:52:25 +02:00 committed by Antoine Durand-gasselin
parent db0e6c6092
commit 222a2a9a4d

View file

@ -59,7 +59,7 @@ class Attr(object):
optional = None optional = None
conn = None conn = None
can_modify = ['nounou'] can_modify = ['Nounou']
"""La liste des droits qui suffisent à avoir le droit de modifier la valeur""" """La liste des droits qui suffisent à avoir le droit de modifier la valeur"""
def __init__(self, val, ldif, conn, ctxt_check): def __init__(self, val, ldif, conn, ctxt_check):
@ -184,7 +184,7 @@ class tel(Attr):
singlevalue = True singlevalue = True
optional = False optional = False
legend = u"Téléphone" legend = u"Téléphone"
can_modify = ["self", "nounou", "cableur"] can_modify = ["self", "Nounou", "Cableur"]
def parse_value(self, val, ldif): def parse_value(self, val, ldif):
self.value = format_tel(val) self.value = format_tel(val)
@ -204,7 +204,7 @@ class yearAttr(intAttr):
class paiement(yearAttr): class paiement(yearAttr):
legend = u"Paiement" legend = u"Paiement"
can_modify = ["cableur", "nounou", "tresorier"] can_modify = ["Cableur", "Nounou", "tresorier"]
class carteEtudiant(yearAttr): class carteEtudiant(yearAttr):
legend = u"Carte d'étudiant" legend = u"Carte d'étudiant"
@ -214,7 +214,7 @@ class mailAlias(Attr):
singlevalue = False singlevalue = False
optional = True optional = True
legend = u"Alias mail" legend = u"Alias mail"
can_modify = ["self", "cableur", "nounou"] can_modify = ["self", "Cableur", "Nounou"]
def parse_value(self, val, ldif): def parse_value(self, val, ldif):
val = val.lower() val = val.lower()
@ -229,8 +229,8 @@ class canonicalAlias(Attr):
legend = u"Alias mail canonique" legend = u"Alias mail canonique"
def parse_value(self, val, ldif): def parse_value(self, val, ldif):
val = val.lower() val = u".".join([ a.capitalize() for a in val.split(u'.', 1) ])
if not re.match('[a-z][-_.0-9a-z]+', val): if not re.match('[A-Za-z][-_.0-9A-Za-z]+', val):
raise ValueError("Alias mail invalide (%s)" % val) raise ValueError("Alias mail invalide (%s)" % val)
self.value = val self.value = val
@ -239,7 +239,7 @@ class etudes(Attr):
singlevalue = False singlevalue = False
optional = False optional = False
legend = u"Études" legend = u"Études"
can_modify = ["self", "cableur", "nounou"] can_modify = ["self", "Cableur", "Nounou"]
def parse_value(self, val, ldif): def parse_value(self, val, ldif):
# who cares # who cares
@ -250,7 +250,7 @@ class chbre(Attr):
singlevalue = True singlevalue = True
optional = False optional = False
legend = u"Chambre sur le campus" legend = u"Chambre sur le campus"
can_modify = ["self", "cableur", "nounou"] can_modify = ["self", "Cableur", "Nounou"]
def parse_value(self, val, ldif): def parse_value(self, val, ldif):
if val in (u"EXT", u"????"): if val in (u"EXT", u"????"):
@ -263,19 +263,22 @@ class droits(Attr):
singlevalue = False singlevalue = False
optional = True optional = True
legend = u"Droits sur les serveurs" legend = u"Droits sur les serveurs"
can_modify = ["nounou", "bureau"] can_modify = ["Nounou", "Bureau"]
def parse_value(self, val, ldif): def parse_value(self, val, ldif):
if val not in ['apprenti', 'nounou', 'cableur', 'tresorier', 'bureau', if val.lower() not in ['apprenti', 'nounou', 'cableur', 'tresorier', 'bureau',
'webmaster', 'webradio', 'imprimeur', 'multimachines', 'victime']: 'webmaster', 'webradio', 'imprimeur', 'multimachines', 'victime']:
raise ValueError("Ces droits n'existent pas ('%s')" % val) raise ValueError("Ces droits n'existent pas ('%s')" % val)
self.value = val if val.lower() == 'webmaster':
self.value = u'WebMaster'
else:
self.value = val.capitalize()
class solde(Attr): class solde(Attr):
singlevalue = True singlevalue = True
optional = True optional = True
legend = u"Solde d'impression" legend = u"Solde d'impression"
can_modify = ["imprimeur", "nounou", "tresorier"] can_modify = ["imprimeur", "Nounou", "Tresorier"]
def parse_value(self, solde, ldif): def parse_value(self, solde, ldif):
# on évite les dépassements # on évite les dépassements
@ -297,7 +300,7 @@ class host(dnsAttr):
singlevalue = True singlevalue = True
optional = False optional = False
hname = legend = u"Nom d'hôte" hname = legend = u"Nom d'hôte"
can_modify = ["parent", "nounou", "cableur"] can_modify = ["parent", "Nounou", "Cableur"]
class macAddress(Attr): class macAddress(Attr):
@ -305,7 +308,7 @@ class macAddress(Attr):
optional = False optional = False
legend = u"Adresse physique de la carte réseau" legend = u"Adresse physique de la carte réseau"
hname = "Adresse MAC" hname = "Adresse MAC"
can_modify = ["parent", "nounou", "cableur"] can_modify = ["parent", "Nounou", "Cableur"]
def parse_value(self, mac, ldif): def parse_value(self, mac, ldif):
self.value = format_mac(mac) self.value = format_mac(mac)
@ -393,7 +396,7 @@ class prise(Attr):
legend = u"Prise sur laquelle est branchée la machine" legend = u"Prise sur laquelle est branchée la machine"
def parse_value(self, prise, ldif): def parse_value(self, prise, ldif):
### Tu es une nounou, je te fais confiance ### Tu es une Nounou, je te fais confiance
self.value = prise self.value = prise
class cid(intAttr): class cid(intAttr):
@ -440,19 +443,19 @@ class info(Attr):
singlevalue = False singlevalue = False
optional = True optional = True
legend = u"Quelques informations" legend = u"Quelques informations"
can_modify = ["nounou", "cableur", "bureau"] can_modify = ["Nounou", "Cableur", "Bureau"]
class homepageAlias(Attr): class homepageAlias(Attr):
singlevalue = True singlevalue = True
optional = True optional = True
legend = u'Un alias pour la page personnelle' legend = u'Un alias pour la page personnelle'
can_modify = ["webmaster", "nounou", "cableur"] can_modify = ["WebMaster", "Nounou", "Cableur"]
class charteMA(Attr): class charteMA(Attr):
singlevalue = True singlevalue = True
optional = True optional = True
legend= "Signale si l'adhérent a signé la charte de membres actifs" legend= "Signale si l'adhérent a signé la charte de membres actifs"
can_modify = ["nounou", "bureau"] can_modify = ["Nounou", "Bureau"]
def parse_value(self, signed, ldif): def parse_value(self, signed, ldif):
if signed.upper() not in ["TRUE", "FALSE"]: if signed.upper() not in ["TRUE", "FALSE"]:
@ -474,7 +477,7 @@ class loginShell(Attr):
singlevalue = True singlevalue = True
optional = True optional = True
legend = "Le shell de l'adherent" legend = "Le shell de l'adherent"
can_modify = ["self", "nounou", "cableur"] can_modify = ["self", "Nounou", "Cableur"]
def parse_value(self, shell, ldif): def parse_value(self, shell, ldif):
with open('/etc/shells') as f: with open('/etc/shells') as f:
@ -506,7 +509,7 @@ class mail(Attr):
singlevalue = True singlevalue = True
optional = False optional = False
legend = "Le mail de l'adhérent" legend = "Le mail de l'adhérent"
can_modify = ["self", "nounou", "cableur"] can_modify = ["self", "Nounou", "Cableur"]
# XXX - to be implemented # XXX - to be implemented
#def parse_value(self, mail, ldif): #def parse_value(self, mail, ldif):
@ -523,12 +526,12 @@ class dn(Attr):
class postalAddress(Attr): class postalAddress(Attr):
singlevalue = False singlevalue = False
optional = True optional = True
can_modify = ["self", "cableur", "nounou", "bureau"] can_modify = ["self", "Cableur", "Nounou", "Bureau"]
class controle(Attr): class controle(Attr):
singlevalue = True singlevalue = True
optional = False optional = False
can_modify = ["tresorier", "nounou"] can_modify = ["Tresorier", "Nounou"]
def parse_value(self, ctrl, ldif): def parse_value(self, ctrl, ldif):
if ctrl not in [u"", u"c", u"p", u"cp", u"pc"]: if ctrl not in [u"", u"c", u"p", u"cp", u"pc"]: