Début de la mise en place du VLAN gratuit
darcs-hash:20080903204822-ffbb2-f1ba3162718ce45385b2b160c149e2cb8740cefe.gz
This commit is contained in:
parent
6f6527d2c1
commit
04f0caf4be
1 changed files with 28 additions and 7 deletions
|
@ -290,10 +290,11 @@ 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', 'homepageAlias', 'mailInvalide', 'charteMA'], \
|
'ablacklist', 'homepageAlias', 'mailInvalide', 'charteMA',
|
||||||
|
'adherentPayant'], \
|
||||||
'club': \
|
'club': \
|
||||||
['cid', 'responsable', 'paiement', 'historique', 'blacklist',
|
['cid', 'responsable', 'paiement', 'historique', 'blacklist',
|
||||||
'mailAlias', 'info', 'controle', 'ablacklist'], \
|
'mailAlias', 'info', 'controle', 'ablacklist', 'imprimeurClub'], \
|
||||||
'machineFixe': non_auto_search_machines_champs,
|
'machineFixe': non_auto_search_machines_champs,
|
||||||
'machineCrans': non_auto_search_machines_champs + ['prise'],
|
'machineCrans': non_auto_search_machines_champs + ['prise'],
|
||||||
'borneWifi': non_auto_search_machines_champs + \
|
'borneWifi': non_auto_search_machines_champs + \
|
||||||
|
@ -2022,6 +2023,19 @@ class Adherent(BaseProprietaire):
|
||||||
# renvoie la valeur trouvée dans la base
|
# renvoie la valeur trouvée dans la base
|
||||||
return bool(self._data.get('charteMA', []))
|
return bool(self._data.get('charteMA', []))
|
||||||
|
|
||||||
|
def adherentPayant(self, valeur = None):
|
||||||
|
"""
|
||||||
|
L'adhérent paie sa cotisation (a droit au WiFi, à un compte Crans, ... True par défaut
|
||||||
|
"""
|
||||||
|
|
||||||
|
if isinstance(valeur, bool):
|
||||||
|
self._set('adherentPayant', valeur and [] or ['FALSE'])
|
||||||
|
else if valeur is not None:
|
||||||
|
raise ValueError, u"adherentPayant prend un booléen comme argument"
|
||||||
|
|
||||||
|
# bool d'une liste non vide est true, on inverse donc (la base ne peut contenir que FALSE)
|
||||||
|
return not bool(self._data.get('adherentPayant', []))
|
||||||
|
|
||||||
def supprimer_compte(self):
|
def supprimer_compte(self):
|
||||||
"""
|
"""
|
||||||
Supprime le compte sur zamok. Penser à définir l'adresse mail après.
|
Supprime le compte sur zamok. Penser à définir l'adresse mail après.
|
||||||
|
@ -2108,6 +2122,9 @@ class Adherent(BaseProprietaire):
|
||||||
l, login = preattr(login)
|
l, login = preattr(login)
|
||||||
login = login.lower()
|
login = login.lower()
|
||||||
|
|
||||||
|
if login and not self.adherentPayant():
|
||||||
|
raise ValueError(u"L'adhérent ne paie pas de cotisation, il n'a pas droit à un compte.")
|
||||||
|
|
||||||
if 'posixAccount' in self._data['objectClass']:
|
if 'posixAccount' in self._data['objectClass']:
|
||||||
if login != self._data['uid']:
|
if login != self._data['uid']:
|
||||||
# A déja un compte
|
# A déja un compte
|
||||||
|
@ -2768,11 +2785,15 @@ class Machine(BaseClasseCrans):
|
||||||
net = [ '0.0.0.0/0' ]
|
net = [ '0.0.0.0/0' ]
|
||||||
pool_ip = lister_ip_dispo('all')
|
pool_ip = lister_ip_dispo('all')
|
||||||
else:
|
else:
|
||||||
|
if self.proprietaire().adherentPayant():
|
||||||
try:
|
try:
|
||||||
net = config.NETs[self.proprietaire().chbre()[0].lower()]
|
net = config.NETs[self.proprietaire().chbre()[0].lower()]
|
||||||
pool_ip = lister_ip_dispo(self.proprietaire().chbre()[0].lower())
|
pool_ip = lister_ip_dispo(self.proprietaire().chbre()[0].lower())
|
||||||
except:
|
except:
|
||||||
raise RuntimeError(u'Impossible de trouver le réseau où placer la machine.')
|
raise RuntimeError(u'Impossible de trouver le réseau où placer la machine.')
|
||||||
|
else:
|
||||||
|
net = config.NETs["gratuit"]
|
||||||
|
pool_ip = lister_ip_dispo("gratuit")
|
||||||
|
|
||||||
if ip == '<automatique>':
|
if ip == '<automatique>':
|
||||||
# On va prendre choisir une IP au hasard dans le pool des IP dispo
|
# On va prendre choisir une IP au hasard dans le pool des IP dispo
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue