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