[attributs] ajout d'une variable de classe can_modify pour les attributs
This commit is contained in:
parent
3f8f2b498a
commit
8c9bf151bb
1 changed files with 31 additions and 2 deletions
33
attributs.py
33
attributs.py
|
@ -59,6 +59,9 @@ class Attr(object):
|
|||
optional = None
|
||||
conn = None
|
||||
|
||||
can_modify = ['nounou']
|
||||
"""La liste des droits qui suffisent à avoir le droit de modifier la valeur"""
|
||||
|
||||
def __init__(self, val, ldif, conn, ctxt_check):
|
||||
"""Crée un nouvel objet représentant un attribut.
|
||||
|
||||
|
@ -181,6 +184,7 @@ class tel(Attr):
|
|||
singlevalue = True
|
||||
optional = False
|
||||
legend = u"Téléphone"
|
||||
can_modify = ["self", "nounou", "cableur"]
|
||||
|
||||
def parse_value(self, val, ldif):
|
||||
self.value = format_tel(val)
|
||||
|
@ -200,7 +204,7 @@ class yearAttr(intAttr):
|
|||
|
||||
class paiement(yearAttr):
|
||||
legend = u"Paiement"
|
||||
|
||||
can_modify = ["cableur", "nounou", "tresorier"]
|
||||
|
||||
class carteEtudiant(yearAttr):
|
||||
legend = u"Carte d'étudiant"
|
||||
|
@ -210,6 +214,7 @@ class mailAlias(Attr):
|
|||
singlevalue = False
|
||||
optional = True
|
||||
legend = u"Alias mail"
|
||||
can_modify = ["self", "cableur", "nounou"]
|
||||
|
||||
def parse_value(self, val, ldif):
|
||||
val = val.lower()
|
||||
|
@ -234,6 +239,7 @@ class etudes(Attr):
|
|||
singlevalue = False
|
||||
optional = False
|
||||
legend = u"Études"
|
||||
can_modify = ["self", "cableur", "nounou"]
|
||||
|
||||
def parse_value(self, val, ldif):
|
||||
# who cares
|
||||
|
@ -244,6 +250,7 @@ class chbre(Attr):
|
|||
singlevalue = True
|
||||
optional = False
|
||||
legend = u"Chambre sur le campus"
|
||||
can_modify = ["self", "cableur", "nounou"]
|
||||
|
||||
def parse_value(self, val, ldif):
|
||||
if val in (u"EXT", u"????"):
|
||||
|
@ -256,6 +263,7 @@ class droits(Attr):
|
|||
singlevalue = False
|
||||
optional = True
|
||||
legend = u"Droits sur les serveurs"
|
||||
can_modify = ["nounou", "bureau"]
|
||||
|
||||
def parse_value(self, val, ldif):
|
||||
if val not in ['apprenti', 'nounou', 'cableur', 'tresorier', 'bureau',
|
||||
|
@ -267,6 +275,7 @@ class solde(Attr):
|
|||
singlevalue = True
|
||||
optional = True
|
||||
legend = u"Solde d'impression"
|
||||
can_modify = ["imprimeur", "nounou", "tresorier"]
|
||||
|
||||
def parse_value(self, solde, ldif):
|
||||
# on évite les dépassements
|
||||
|
@ -288,6 +297,7 @@ class host(dnsAttr):
|
|||
singlevalue = True
|
||||
optional = False
|
||||
hname = legend = u"Nom d'hôte"
|
||||
can_modify = ["parent", "nounou", "cableur"]
|
||||
|
||||
|
||||
class macAddress(Attr):
|
||||
|
@ -295,6 +305,7 @@ class macAddress(Attr):
|
|||
optional = False
|
||||
legend = u"Adresse physique de la carte réseau"
|
||||
hname = "Adresse MAC"
|
||||
can_modify = ["parent", "nounou", "cableur"]
|
||||
|
||||
def parse_value(self, mac, ldif):
|
||||
self.value = format_mac(mac)
|
||||
|
@ -335,7 +346,6 @@ class hostAlias(dnsAttr):
|
|||
optional = True
|
||||
legend = u'Alias de nom de machine'
|
||||
|
||||
|
||||
class ipsec(Attr):
|
||||
singlevalue = False
|
||||
optional = True
|
||||
|
@ -430,16 +440,19 @@ class info(Attr):
|
|||
singlevalue = False
|
||||
optional = True
|
||||
legend = u"Quelques informations"
|
||||
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"]
|
||||
|
||||
class charteMA(Attr):
|
||||
singlevalue = True
|
||||
optional = True
|
||||
legend= "Signale si l'adhérent a signé la charte de membres actifs"
|
||||
can_modify = ["nounou", "bureau"]
|
||||
|
||||
def parse_value(self, signed, ldif):
|
||||
if signed.upper() not in ["TRUE", "FALSE"]:
|
||||
|
@ -461,6 +474,7 @@ class loginShell(Attr):
|
|||
singlevalue = True
|
||||
optional = True
|
||||
legend = "Le shell de l'adherent"
|
||||
can_modify = ["self", "nounou", "cableur"]
|
||||
|
||||
def parse_value(self, shell, ldif):
|
||||
with open('/etc/shells') as f:
|
||||
|
@ -492,6 +506,7 @@ class mail(Attr):
|
|||
singlevalue = True
|
||||
optional = False
|
||||
legend = "Le mail de l'adhérent"
|
||||
can_modify = ["self", "nounou", "cableur"]
|
||||
|
||||
# XXX - to be implemented
|
||||
#def parse_value(self, mail, ldif):
|
||||
|
@ -508,6 +523,20 @@ class dn(Attr):
|
|||
class postalAddress(Attr):
|
||||
singlevalue = False
|
||||
optional = True
|
||||
can_modify = ["self", "cableur", "nounou", "bureau"]
|
||||
|
||||
class controle(Attr):
|
||||
singlevalue = True
|
||||
optional = False
|
||||
can_modify = ["tresorier", "nounou"]
|
||||
|
||||
def parse_value(self, ctrl, ldif):
|
||||
if ctrl not in [u"", u"c", u"p", u"cp", u"pc"]:
|
||||
raise ValueError("control peut prendre les valeurs [c][p]")
|
||||
if ctrl = u'pc':
|
||||
self.value = u'cp'
|
||||
else:
|
||||
self.value = ctrl
|
||||
|
||||
CRANS_ATTRIBUTES= {
|
||||
'objectClass' : objectClass,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue