Ajout du champ homepageAlias.

darcs-hash:20060708154722-68412-7ed279f89235268100aea7ffd6109498d7d2cea1.gz
This commit is contained in:
glondu 2006-07-08 17:47:22 +02:00
parent caf0124f67
commit 4cce15b794

View file

@ -271,7 +271,7 @@ class CransLdap:
['etudes', 'paiement', 'carteEtudiant', 'aid', 'postalAddress', ['etudes', 'paiement', 'carteEtudiant', 'aid', 'postalAddress',
'historique', 'blacklist', 'droits', 'uidNumber', 'uid', 'info', 'historique', 'blacklist', 'droits', 'uidNumber', 'uid', 'info',
'solde', 'controle', 'contourneGreylist', 'rewriteMailHeaders', 'solde', 'controle', 'contourneGreylist', 'rewriteMailHeaders',
'ablacklist'], \ 'ablacklist', 'homepageAlias'], \
'club': \ 'club': \
['cid', 'responsable', 'paiement', 'historique', 'blacklist', ['cid', 'responsable', 'paiement', 'historique', 'blacklist',
'mailAlias', 'info', 'controle', 'ablacklist'], \ 'mailAlias', 'info', 'controle', 'ablacklist'], \
@ -1055,7 +1055,8 @@ class BaseClasseCrans(CransLdap):
# Formate les entrées de l'historique de la forme champ+diff-diff # Formate les entrées de l'historique de la forme champ+diff-diff
for champ in ['droits', 'controle', 'paiement', 'carteEtudiant', for champ in ['droits', 'controle', 'paiement', 'carteEtudiant',
'mailAlias', 'hostAlias', 'exempt', 'nvram', 'mailAlias', 'hostAlias', 'exempt', 'nvram',
'portTCPin', 'portTCPout', 'portUDPin', 'portUDPout']: 'portTCPin', 'portTCPout', 'portUDPin', 'portUDPout',
'homepageAlias']:
if champ in self.modifs: if champ in self.modifs:
if champ == 'controle': if champ == 'controle':
# Ce n'est pas pareil que self._init_data.get('controle', ['']) # Ce n'est pas pareil que self._init_data.get('controle', [''])
@ -1328,6 +1329,54 @@ class BaseProprietaire(BaseClasseCrans):
self._set('mailAlias', liste) self._set('mailAlias', liste)
return 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): def machines(self):
""" Retourne les machines (instances) appartenant à la classe """ """ Retourne les machines (instances) appartenant à la classe """
# Le champ id n'est pas initialisé lorsque le proprio est en cours # Le champ id n'est pas initialisé lorsque le proprio est en cours
@ -1887,7 +1936,7 @@ class Adherent(BaseProprietaire):
'shadowWarning', 'loginShell', 'userPassword', 'shadowWarning', 'loginShell', 'userPassword',
'uidNumber', 'gidNumber', 'homeDirectory', 'gecos', 'uidNumber', 'gidNumber', 'homeDirectory', 'gecos',
'droits', 'mailAlias', 'canonicalAlias', 'droits', 'mailAlias', 'canonicalAlias',
'rewriteMailHeaders', 'contourneGreylist' ]: 'rewriteMailHeaders', 'contourneGreylist', 'homepageAlias' ]:
try: self._data.pop(c) try: self._data.pop(c)
except: pass except: pass