Ajout du champ homepageAlias.
darcs-hash:20060708154722-68412-7ed279f89235268100aea7ffd6109498d7d2cea1.gz
This commit is contained in:
parent
caf0124f67
commit
4cce15b794
1 changed files with 52 additions and 3 deletions
|
@ -271,7 +271,7 @@ class CransLdap:
|
|||
['etudes', 'paiement', 'carteEtudiant', 'aid', 'postalAddress',
|
||||
'historique', 'blacklist', 'droits', 'uidNumber', 'uid', 'info',
|
||||
'solde', 'controle', 'contourneGreylist', 'rewriteMailHeaders',
|
||||
'ablacklist'], \
|
||||
'ablacklist', 'homepageAlias'], \
|
||||
'club': \
|
||||
['cid', 'responsable', 'paiement', 'historique', 'blacklist',
|
||||
'mailAlias', 'info', 'controle', 'ablacklist'], \
|
||||
|
@ -1055,7 +1055,8 @@ class BaseClasseCrans(CransLdap):
|
|||
# Formate les entrées de l'historique de la forme champ+diff-diff
|
||||
for champ in ['droits', 'controle', 'paiement', 'carteEtudiant',
|
||||
'mailAlias', 'hostAlias', 'exempt', 'nvram',
|
||||
'portTCPin', 'portTCPout', 'portUDPin', 'portUDPout']:
|
||||
'portTCPin', 'portTCPout', 'portUDPin', 'portUDPout',
|
||||
'homepageAlias']:
|
||||
if champ in self.modifs:
|
||||
if champ == 'controle':
|
||||
# Ce n'est pas pareil que self._init_data.get('controle', [''])
|
||||
|
@ -1328,6 +1329,54 @@ class BaseProprietaire(BaseClasseCrans):
|
|||
self._set('mailAlias', liste)
|
||||
return liste
|
||||
|
||||
def homepageAlias(self, new=None):
|
||||
"""
|
||||
Creation ou visualisation des alias de page perso.
|
||||
Meme systeme d'arguments que pour info.
|
||||
"""
|
||||
liste = self._data.get('homepageAlias', [])[:]
|
||||
if new == None: return liste
|
||||
|
||||
def validate(alias):
|
||||
alias = alias.lower()
|
||||
if not sre.match(r"^[a-z0-9](\.?[-a-z0-9]+)*$", alias):
|
||||
raise ValueError("Alias incorrect : %s" % alias)
|
||||
if "." not in alias:
|
||||
alias += ".perso.crans.org"
|
||||
if alias.endswith(".crans.org") and not alias.endswith(".perso.crans.org"):
|
||||
raise ValueError("Les alias crans doivent se terminer par .perso.crans.org")
|
||||
# ...peut-etre faire une verification de domaine ici...
|
||||
# On convertit en str (il ne devrait plus y avoir de caractere Unicode)
|
||||
return str(alias)
|
||||
|
||||
if type(new) == list:
|
||||
# Modif
|
||||
index = new[0]
|
||||
new = new[1]
|
||||
if not new:
|
||||
# Supression alias
|
||||
liste.pop(index)
|
||||
else:
|
||||
# Modification alias
|
||||
new = validate(new)
|
||||
liste[index] = new
|
||||
elif type(new) == str:
|
||||
# Alias supplémentaire
|
||||
if not new:
|
||||
# On n'ajoute pas d'alias vide
|
||||
return liste
|
||||
# Ajout à la liste
|
||||
new = validate(new)
|
||||
liste.append(new)
|
||||
else:
|
||||
raise TypeError
|
||||
|
||||
# Lock de l'alias (a faire)
|
||||
# self.lock('homepageAlias', new)
|
||||
|
||||
self._set('homepageAlias', liste)
|
||||
return liste
|
||||
|
||||
def machines(self):
|
||||
""" Retourne les machines (instances) appartenant à la classe """
|
||||
# Le champ id n'est pas initialisé lorsque le proprio est en cours
|
||||
|
@ -1887,7 +1936,7 @@ class Adherent(BaseProprietaire):
|
|||
'shadowWarning', 'loginShell', 'userPassword',
|
||||
'uidNumber', 'gidNumber', 'homeDirectory', 'gecos',
|
||||
'droits', 'mailAlias', 'canonicalAlias',
|
||||
'rewriteMailHeaders', 'contourneGreylist' ]:
|
||||
'rewriteMailHeaders', 'contourneGreylist', 'homepageAlias' ]:
|
||||
try: self._data.pop(c)
|
||||
except: pass
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue