[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
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"]: