[ldap_crans] Exceptions en str
darcs-hash:20100904133907-ffbb2-fc397f6e3d005e0d49d1a1f5f791bf821cc7c4ec.gz
This commit is contained in:
parent
062df15601
commit
b19d9cc71b
2 changed files with 116 additions and 116 deletions
|
@ -577,7 +577,7 @@ def set_droits(adher):
|
||||||
droit = droit.strip()
|
droit = droit.strip()
|
||||||
if droit == '': continue
|
if droit == '': continue
|
||||||
if droit not in droits_possibles:
|
if droit not in droits_possibles:
|
||||||
raise ValueError(u'Droit %s incorrect' % droit)
|
raise ValueError('Droit %s incorrect' % droit)
|
||||||
new.append(droit)
|
new.append(droit)
|
||||||
|
|
||||||
# Dans le cas où l'utilisateur qui modifie n'est pas Nounou, on ajoute les
|
# Dans le cas où l'utilisateur qui modifie n'est pas Nounou, on ajoute les
|
||||||
|
|
|
@ -38,7 +38,7 @@ cur_user = os.getenv('SUDO_USER') or pwd.getpwuid(os.getuid())[0]
|
||||||
|
|
||||||
if __name__ == 'ldap_crans_test' or os.environ.get('crans_ldap', '') == 'test':
|
if __name__ == 'ldap_crans_test' or os.environ.get('crans_ldap', '') == 'test':
|
||||||
if hostname != "vo":
|
if hostname != "vo":
|
||||||
raise ImportError, coul("La base de test n'est accessible que depuis vo !", "rouge")
|
raise ImportError(coul("La base de test n'est accessible que depuis vo !", "rouge"))
|
||||||
# Utilisation de la base de données de test (tests, séminaire...)
|
# Utilisation de la base de données de test (tests, séminaire...)
|
||||||
# Il faut au choix :
|
# Il faut au choix :
|
||||||
# - faire un import crans_ldap_test
|
# - faire un import crans_ldap_test
|
||||||
|
@ -158,7 +158,7 @@ def mailexist(mail):
|
||||||
r = s.getreply()[0] in [250, 252]
|
r = s.getreply()[0] in [250, 252]
|
||||||
s.close()
|
s.close()
|
||||||
except:
|
except:
|
||||||
raise ValueError(u'Serveur de mail injoignable')
|
raise ValueError('Serveur de mail injoignable')
|
||||||
|
|
||||||
return r
|
return r
|
||||||
|
|
||||||
|
@ -218,12 +218,12 @@ def format_mac(mac):
|
||||||
map(lambda x: "%02s" % x, mac.split(":"))))
|
map(lambda x: "%02s" % x, mac.split(":"))))
|
||||||
mac = mac.replace(':', '').lower()
|
mac = mac.replace(':', '').lower()
|
||||||
if len(mac) != 12:
|
if len(mac) != 12:
|
||||||
raise ValueError(u"Longueur de l'adresse mac incorrecte.")
|
raise ValueError("Longueur de l'adresse mac incorrecte.")
|
||||||
for c in mac[:]:
|
for c in mac[:]:
|
||||||
if c not in string.hexdigits:
|
if c not in string.hexdigits:
|
||||||
raise ValueError(u"Caractère interdit '%s' dans l'adresse mac." % c)
|
raise ValueError("Caractère interdit '%s' dans l'adresse mac." % c)
|
||||||
if mac == '000000000000':
|
if mac == '000000000000':
|
||||||
raise ValueError(u"MAC nulle interdite\nIl doit être possible de modifier l'adresse de la carte.")
|
raise ValueError("MAC nulle interdite\nIl doit être possible de modifier l'adresse de la carte.")
|
||||||
|
|
||||||
# Formatage
|
# Formatage
|
||||||
mac = "%s:%s:%s:%s:%s:%s" % (mac[:2], mac[2:4], mac[4:6], mac[6:8], mac[8:10], mac[10:])
|
mac = "%s:%s:%s:%s:%s:%s" % (mac[:2], mac[2:4], mac[4:6], mac[6:8], mac[8:10], mac[10:])
|
||||||
|
@ -247,16 +247,16 @@ def validate_mail(mail, crans_allowed=False):
|
||||||
if mail.count('@') != 1 \
|
if mail.count('@') != 1 \
|
||||||
or not ( l-b >= 2 and l-b <= 4) \
|
or not ( l-b >= 2 and l-b <= 4) \
|
||||||
or a < 1 or b-a < 2:
|
or a < 1 or b-a < 2:
|
||||||
raise ValueError(u"Adresse mail incorrecte.")
|
raise ValueError("Adresse mail incorrecte.")
|
||||||
|
|
||||||
# Pas de caractèrs bizarres
|
# Pas de caractèrs bizarres
|
||||||
for l in mail[:]:
|
for l in mail[:]:
|
||||||
if not l in (string.lowercase + string.digits + '-_.@'):
|
if not l in (string.lowercase + string.digits + '-_.@'):
|
||||||
raise ValueError(u"Caractère interdit dans l'adresse mail (%s)." % l)
|
raise ValueError("Caractère interdit dans l'adresse mail (%s)." % l)
|
||||||
|
|
||||||
# Pour les vicieux
|
# Pour les vicieux
|
||||||
if not crans_allowed and mail.endswith(('crans.org','crans.ens-cachan.fr')):
|
if not crans_allowed and mail.endswith(('crans.org','crans.ens-cachan.fr')):
|
||||||
raise ValueError(u"Adresse mail @crans interdite ici !")
|
raise ValueError("Adresse mail @crans interdite ici !")
|
||||||
|
|
||||||
# On enlève les blacklistes mail_invalide
|
# On enlève les blacklistes mail_invalide
|
||||||
return mail
|
return mail
|
||||||
|
@ -480,7 +480,7 @@ class CransLdap:
|
||||||
# Il ne tourne plus
|
# Il ne tourne plus
|
||||||
self.remove_lock(res[0]) # delock
|
self.remove_lock(res[0]) # delock
|
||||||
return self.lock(item, valeur) # relock
|
return self.lock(item, valeur) # relock
|
||||||
raise EnvironmentError(u'Objet (%s=%s) locké, patienter.' % (item, valeur), l)
|
raise EnvironmentError('Objet (%s=%s) locké, patienter.' % (item, valeur), l)
|
||||||
else:
|
else:
|
||||||
if not hasattr(self, '_locks'):
|
if not hasattr(self, '_locks'):
|
||||||
self._locks = [lock_dn]
|
self._locks = [lock_dn]
|
||||||
|
@ -635,7 +635,7 @@ class CransLdap:
|
||||||
# On crée l'objet
|
# On crée l'objet
|
||||||
return classe(entry, mode, self.conn)
|
return classe(entry, mode, self.conn)
|
||||||
except:
|
except:
|
||||||
raise ValueError(u"Impossible de créer l'objet %s" % nom_classe)
|
raise ValueError("Impossible de créer l'objet %s" % nom_classe)
|
||||||
|
|
||||||
|
|
||||||
def search(self, expression, mode=''):
|
def search(self, expression, mode=''):
|
||||||
|
@ -658,7 +658,7 @@ class CransLdap:
|
||||||
elif type(expression) == unicode:
|
elif type(expression) == unicode:
|
||||||
expression = expression.encode('utf-8')
|
expression = expression.encode('utf-8')
|
||||||
else:
|
else:
|
||||||
raise TypeError(u'Chaîne attendue')
|
raise TypeError('Chaîne attendue')
|
||||||
|
|
||||||
if not expression:
|
if not expression:
|
||||||
return []
|
return []
|
||||||
|
@ -745,7 +745,7 @@ class CransLdap:
|
||||||
champ = champ[:-1]
|
champ = champ[:-1]
|
||||||
neg = True
|
neg = True
|
||||||
except:
|
except:
|
||||||
raise ValueError(u'Syntaxe de recherche invalide (%s)' % cond)
|
raise ValueError('Syntaxe de recherche invalide (%s)' % cond)
|
||||||
|
|
||||||
# Transformation de certains champs
|
# Transformation de certains champs
|
||||||
champ = self.trans.get(champ, champ)
|
champ = self.trans.get(champ, champ)
|
||||||
|
@ -770,7 +770,7 @@ class CransLdap:
|
||||||
filtre_seul[i] = True
|
filtre_seul[i] = True
|
||||||
|
|
||||||
if not ok:
|
if not ok:
|
||||||
raise ValueError(u'Champ de recherche inconnu (%s)' % champ)
|
raise ValueError('Champ de recherche inconnu (%s)' % champ)
|
||||||
|
|
||||||
## Recherche avec chacun des filtres
|
## Recherche avec chacun des filtres
|
||||||
r = {} # contiendra les réponses par filtre
|
r = {} # contiendra les réponses par filtre
|
||||||
|
@ -1017,7 +1017,7 @@ class BaseClasseCrans(CransLdap):
|
||||||
debut = new[0] = int(time.time())
|
debut = new[0] = int(time.time())
|
||||||
else:
|
else:
|
||||||
try: debut = new[0] = int(new[0])
|
try: debut = new[0] = int(new[0])
|
||||||
except: raise ValueError(u'Date de début blacklist invalide')
|
except: raise ValueError('Date de début blacklist invalide')
|
||||||
|
|
||||||
if new[1] == 'now':
|
if new[1] == 'now':
|
||||||
fin = new[1] = int(time.time())
|
fin = new[1] = int(time.time())
|
||||||
|
@ -1025,12 +1025,12 @@ class BaseClasseCrans(CransLdap):
|
||||||
fin = -1
|
fin = -1
|
||||||
else:
|
else:
|
||||||
try: fin = new[1] = int(new[1])
|
try: fin = new[1] = int(new[1])
|
||||||
except: raise ValueError(u'Date de fin blacklist invalide')
|
except: raise ValueError('Date de fin blacklist invalide')
|
||||||
|
|
||||||
if debut == fin:
|
if debut == fin:
|
||||||
raise ValueError(u'Dates de début et de fin identiques')
|
raise ValueError('Dates de début et de fin identiques')
|
||||||
elif fin != -1 and debut > fin:
|
elif fin != -1 and debut > fin:
|
||||||
raise ValueError(u'Date de fin avant date de début')
|
raise ValueError('Date de fin avant date de début')
|
||||||
|
|
||||||
# On dépasse la fin de sanction d'1min pour être sûr qu'elle est périmée.
|
# On dépasse la fin de sanction d'1min pour être sûr qu'elle est périmée.
|
||||||
fin = fin + 60
|
fin = fin + 60
|
||||||
|
@ -1270,13 +1270,13 @@ class BaseClasseCrans(CransLdap):
|
||||||
else:
|
else:
|
||||||
### Modification entrée
|
### Modification entrée
|
||||||
if not self._modifiable:
|
if not self._modifiable:
|
||||||
raise RuntimeError(u'Objet non modifiable : %s' % str(self))
|
raise RuntimeError('Objet non modifiable : %s' % str(self))
|
||||||
modlist = ldap.modlist.modifyModlist(self._init_data, self._data)
|
modlist = ldap.modlist.modifyModlist(self._init_data, self._data)
|
||||||
try:
|
try:
|
||||||
self.conn.modify_s(self.dn, modlist)
|
self.conn.modify_s(self.dn, modlist)
|
||||||
except ldap.TYPE_OR_VALUE_EXISTS, c:
|
except ldap.TYPE_OR_VALUE_EXISTS, c:
|
||||||
champ = c.args[0]['info'].split(':')[0]
|
champ = c.args[0]['info'].split(':')[0]
|
||||||
raise RuntimeError(u'Entrée en double dans le champ %s' % champ)
|
raise RuntimeError('Entrée en double dans le champ %s' % champ)
|
||||||
|
|
||||||
# l'ip change, le mid aussi...
|
# l'ip change, le mid aussi...
|
||||||
if 'ipHostNumber' in self.modifs:
|
if 'ipHostNumber' in self.modifs:
|
||||||
|
@ -1443,14 +1443,14 @@ class BaseProprietaire(BaseClasseCrans):
|
||||||
l, new = preattr(new)
|
l, new = preattr(new)
|
||||||
new = new.lower()
|
new = new.lower()
|
||||||
if l < 2:
|
if l < 2:
|
||||||
raise ValueError(u"Alias trop court.")
|
raise ValueError("Alias trop court.")
|
||||||
for c in new[:]:
|
for c in new[:]:
|
||||||
if not c in (string.letters + string.digits + '-_.'):
|
if not c in (string.letters + string.digits + '-_.'):
|
||||||
raise ValueError(u"Alias : seuls les caractères alphanumériques, le -, le _ et le . sont autorisés." )
|
raise ValueError("Alias : seuls les caractères alphanumériques, le -, le _ et le . sont autorisés." )
|
||||||
if new[0] not in string.letters:
|
if new[0] not in string.letters:
|
||||||
raise ValueError(u"Le premier caractère de l'alias doit être alphabétique.")
|
raise ValueError("Le premier caractère de l'alias doit être alphabétique.")
|
||||||
if mailexist(new):
|
if mailexist(new):
|
||||||
raise ValueError(u"Alias existant ou correspondand à un compte.")
|
raise ValueError("Alias existant ou correspondand à un compte.")
|
||||||
|
|
||||||
if index != -1:
|
if index != -1:
|
||||||
liste[index] = new
|
liste[index] = new
|
||||||
|
@ -1570,11 +1570,11 @@ class BaseProprietaire(BaseClasseCrans):
|
||||||
try:
|
try:
|
||||||
new = solde + float(str(operation).replace(',', '.'))
|
new = solde + float(str(operation).replace(',', '.'))
|
||||||
except ValueError:
|
except ValueError:
|
||||||
raise ValueError(u"Il faut donner un nombre en argument.")
|
raise ValueError("Il faut donner un nombre en argument.")
|
||||||
|
|
||||||
# découvert accepté
|
# découvert accepté
|
||||||
if new < config.impression.decouvert:
|
if new < config.impression.decouvert:
|
||||||
raise ValueError(u"Solde minimal atteint, opération non effectuée.")
|
raise ValueError("Solde minimal atteint, opération non effectuée.")
|
||||||
|
|
||||||
self._set('solde', [str(new)], comment)
|
self._set('solde', [str(new)], comment)
|
||||||
return new
|
return new
|
||||||
|
@ -1632,7 +1632,7 @@ class BaseProprietaire(BaseClasseCrans):
|
||||||
|
|
||||||
# si l'adhérent n'a pas de compte, on lève une exception
|
# si l'adhérent n'a pas de compte, on lève une exception
|
||||||
if not self.compte():
|
if not self.compte():
|
||||||
raise NotImplementedError, u"L'adhérent n'a pas de compte"
|
raise NotImplementedError("L'adhérent n'a pas de compte")
|
||||||
|
|
||||||
# tente de modifier la valeur
|
# tente de modifier la valeur
|
||||||
if contourneGreylist == True:
|
if contourneGreylist == True:
|
||||||
|
@ -1640,7 +1640,7 @@ class BaseProprietaire(BaseClasseCrans):
|
||||||
elif contourneGreylist == False:
|
elif contourneGreylist == False:
|
||||||
self._set('contourneGreylist', [])
|
self._set('contourneGreylist', [])
|
||||||
elif contourneGreylist != None:
|
elif contourneGreylist != None:
|
||||||
raise ValueError, u"contourneGreylist prend un booléen comme argument"
|
raise ValueError("contourneGreylist prend un booléen comme argument")
|
||||||
|
|
||||||
# renvoie la valeur trouvée dans la base
|
# renvoie la valeur trouvée dans la base
|
||||||
return bool(self._data.get('contourneGreylist', []))
|
return bool(self._data.get('contourneGreylist', []))
|
||||||
|
@ -1651,7 +1651,7 @@ class BaseProprietaire(BaseClasseCrans):
|
||||||
ou False si le mot de passe n'est pas bon.
|
ou False si le mot de passe n'est pas bon.
|
||||||
"""
|
"""
|
||||||
if not self.compte():
|
if not self.compte():
|
||||||
raise NotImplementedError, u"L'adhérent n'a pas de compte"
|
raise NotImplementedError("L'adhérent n'a pas de compte")
|
||||||
return ldap_passwd.checkpwd(passwd, self._data['userPassword'][0])
|
return ldap_passwd.checkpwd(passwd, self._data['userPassword'][0])
|
||||||
|
|
||||||
def changePasswd(self, passwd):
|
def changePasswd(self, passwd):
|
||||||
|
@ -1659,7 +1659,7 @@ class BaseProprietaire(BaseClasseCrans):
|
||||||
Modifie le mot de passe de l'adhérent
|
Modifie le mot de passe de l'adhérent
|
||||||
"""
|
"""
|
||||||
if not self.compte():
|
if not self.compte():
|
||||||
raise NotImplementedError, u"L'adhérent n'a pas de compte"
|
raise NotImplementedError("L'adhérent n'a pas de compte")
|
||||||
self._set('userPassword', [ldap_passwd.mkpasswd(passwd)])
|
self._set('userPassword', [ldap_passwd.mkpasswd(passwd)])
|
||||||
|
|
||||||
def forward(self, new = None):
|
def forward(self, new = None):
|
||||||
|
@ -1669,7 +1669,7 @@ class BaseProprietaire(BaseClasseCrans):
|
||||||
sinon cette metode ne fonctionnera pas
|
sinon cette metode ne fonctionnera pas
|
||||||
"""
|
"""
|
||||||
if not self.compte():
|
if not self.compte():
|
||||||
raise NotImplementedError, u"L'adhérent n'a pas de compte"
|
raise NotImplementedError("L'adhérent n'a pas de compte")
|
||||||
return config_mail.MailConfig(uid=self._data['uid'][0], forward = new)['forward']
|
return config_mail.MailConfig(uid=self._data['uid'][0], forward = new)['forward']
|
||||||
|
|
||||||
def spam(self, new = None):
|
def spam(self, new = None):
|
||||||
|
@ -1680,20 +1680,20 @@ class BaseProprietaire(BaseClasseCrans):
|
||||||
sinon cette metode ne fonctionnera pas
|
sinon cette metode ne fonctionnera pas
|
||||||
"""
|
"""
|
||||||
if not self.compte():
|
if not self.compte():
|
||||||
raise NotImplementedError, u"L'adhérent n'a pas de compte"
|
raise NotImplementedError("L'adhérent n'a pas de compte")
|
||||||
return config_mail.MailConfig(uid=self._data['uid'][0], spam = new)['spam']
|
return config_mail.MailConfig(uid=self._data['uid'][0], spam = new)['spam']
|
||||||
|
|
||||||
def home(self):
|
def home(self):
|
||||||
""" Retourne le home de l'adhérent """
|
""" Retourne le home de l'adhérent """
|
||||||
if not self.compte():
|
if not self.compte():
|
||||||
raise NotImplementedError, u"L'adhérent na pas de compte"
|
raise NotImplementedError("L'adhérent n'a pas de compte")
|
||||||
|
|
||||||
return self._data['homeDirectory'][0]
|
return self._data['homeDirectory'][0]
|
||||||
|
|
||||||
def uidNumber(self, new=None):
|
def uidNumber(self, new=None):
|
||||||
""" Retourne ou change l'uidNumber de l'adhérent """
|
""" Retourne ou change l'uidNumber de l'adhérent """
|
||||||
if not self.compte():
|
if not self.compte():
|
||||||
raise NotImplementedError, u"L'adhérent na pas de compte"
|
raise NotImplementedError("L'adhérent na pas de compte")
|
||||||
if new == None:
|
if new == None:
|
||||||
return self._data['uidNumber'][0]
|
return self._data['uidNumber'][0]
|
||||||
else:
|
else:
|
||||||
|
@ -1944,11 +1944,11 @@ class Adherent(BaseProprietaire):
|
||||||
new = new.capitalize()
|
new = new.capitalize()
|
||||||
for c in strip_accents(new[:]):
|
for c in strip_accents(new[:]):
|
||||||
if c not in (string.letters + '- '):
|
if c not in (string.letters + '- '):
|
||||||
raise ValueError(u"Seuls les caractères alphabétiques, l'espace et le - sont permis dans %s." % champ)
|
raise ValueError("Seuls les caractères alphabétiques, l'espace et le - sont permis dans %s." % champ)
|
||||||
if l<2:
|
if l<2:
|
||||||
raise ValueError(u"%s trop court." % champ)
|
raise ValueError("%s trop court." % champ)
|
||||||
if new[0] not in string.letters:
|
if new[0] not in string.letters:
|
||||||
raise ValueError(u"Le premier caractère du %s doit être une lettre" % champ)
|
raise ValueError("Le premier caractère du %s doit être une lettre" % champ)
|
||||||
|
|
||||||
self._set(champ, [new])
|
self._set(champ, [new])
|
||||||
if self._data.has_key('gecos'):
|
if self._data.has_key('gecos'):
|
||||||
|
@ -1963,7 +1963,7 @@ class Adherent(BaseProprietaire):
|
||||||
if new != 'inconnu':
|
if new != 'inconnu':
|
||||||
l, new = preattr(new)
|
l, new = preattr(new)
|
||||||
if not new.isdigit() or l < 6 or l > 15:
|
if not new.isdigit() or l < 6 or l > 15:
|
||||||
raise ValueError(u"Numéro de téléphone incorrect (il doit comporter uniquement des chiffres).")
|
raise ValueError("Numéro de téléphone incorrect (il doit comporter uniquement des chiffres).")
|
||||||
|
|
||||||
self._set('tel', [new])
|
self._set('tel', [new])
|
||||||
return new
|
return new
|
||||||
|
@ -1977,14 +1977,14 @@ class Adherent(BaseProprietaire):
|
||||||
|
|
||||||
l, new = preattr(new)
|
l, new = preattr(new)
|
||||||
if l == 0:
|
if l == 0:
|
||||||
raise ValueError(u"Chambre incorrecte.")
|
raise ValueError("Chambre incorrecte.")
|
||||||
|
|
||||||
if new.upper() == 'EXT':
|
if new.upper() == 'EXT':
|
||||||
# N'est pas ou plus sur le campus
|
# N'est pas ou plus sur le campus
|
||||||
# Machine fixe ?
|
# Machine fixe ?
|
||||||
# for m in self.machines():
|
# for m in self.machines():
|
||||||
# if not isinstance(m, MachineWifi):
|
# if not isinstance(m, MachineWifi):
|
||||||
# raise ValueError(u'Un adhérent en dehors du campus ne doit pas avoir de machine fixe.')
|
# raise ValueError('Un adhérent en dehors du campus ne doit pas avoir de machine fixe.')
|
||||||
|
|
||||||
self._set('chbre', ['EXT'])
|
self._set('chbre', ['EXT'])
|
||||||
return 'EXT'
|
return 'EXT'
|
||||||
|
@ -2001,7 +2001,7 @@ class Adherent(BaseProprietaire):
|
||||||
chbres = annuaires.chbre_prises(bat).keys()
|
chbres = annuaires.chbre_prises(bat).keys()
|
||||||
if new[1:] not in chbres or len(new)<4 or not new[1:4].isdigit():
|
if new[1:] not in chbres or len(new)<4 or not new[1:4].isdigit():
|
||||||
chbres.sort()
|
chbres.sort()
|
||||||
aide = u"Chambre inconnue dans le batiment, les chambres valides sont :"
|
aide = "Chambre inconnue dans le bâtiment, les chambres valides sont :"
|
||||||
a = 0
|
a = 0
|
||||||
for c in chbres:
|
for c in chbres:
|
||||||
if len(c)>=3 and not c[:3].isdigit():
|
if len(c)>=3 and not c[:3].isdigit():
|
||||||
|
@ -2011,23 +2011,23 @@ class Adherent(BaseProprietaire):
|
||||||
if c[0] != 'X':
|
if c[0] != 'X':
|
||||||
aide += c.ljust(5)
|
aide += c.ljust(5)
|
||||||
a = a+1
|
a = a+1
|
||||||
aide += u'\n'
|
aide += '\n'
|
||||||
raise ValueError(aide)
|
raise ValueError(aide)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise ValueError(u'Bâtiment inconnu.')
|
raise ValueError('Bâtiment inconnu.')
|
||||||
|
|
||||||
# La chambre est valide, est-elle déja occupée ?
|
# La chambre est valide, est-elle déja occupée ?
|
||||||
test = self.exist('chbre=%s' % new)
|
test = self.exist('chbre=%s' % new)
|
||||||
if test:
|
if test:
|
||||||
search = test[0].split(',')[0]
|
search = test[0].split(',')[0]
|
||||||
if search.split('=')[0] != 'aid':
|
if search.split('=')[0] != 'aid':
|
||||||
raise ValueError(u'Chambre déjà occupée.')
|
raise ValueError('Chambre déjà occupée.')
|
||||||
adh = self.search(search, self._modifiable)['adherent']
|
adh = self.search(search, self._modifiable)['adherent']
|
||||||
if len(adh) != 1:
|
if len(adh) != 1:
|
||||||
raise ValueError(u'Chambre déjà occupée.')
|
raise ValueError('Chambre déjà occupée.')
|
||||||
else:
|
else:
|
||||||
raise ValueError(u'Chambre déjà occupée.', adh[0])
|
raise ValueError('Chambre déjà occupée.', adh[0])
|
||||||
|
|
||||||
# Lock de la chambre
|
# Lock de la chambre
|
||||||
self.lock('chbre', new)
|
self.lock('chbre', new)
|
||||||
|
@ -2056,7 +2056,7 @@ class Adherent(BaseProprietaire):
|
||||||
l_min = [ 2, 0, 5, 2 ]
|
l_min = [ 2, 0, 5, 2 ]
|
||||||
for i in range(0, 4):
|
for i in range(0, 4):
|
||||||
l, new[i] = preattr(new[i])
|
l, new[i] = preattr(new[i])
|
||||||
if l < l_min[i]: raise ValueError(u"Adresse incorrecte.")
|
if l < l_min[i]: raise ValueError("Adresse incorrecte.")
|
||||||
|
|
||||||
# Correction si necessaire
|
# Correction si necessaire
|
||||||
if not new[1]:
|
if not new[1]:
|
||||||
|
@ -2141,7 +2141,7 @@ class Adherent(BaseProprietaire):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise ValueError, u'mail_invalide ne peut prendre que None ou False en argument'
|
raise ValueError('mail_invalide ne peut prendre que None ou False en argument')
|
||||||
|
|
||||||
def charteMA(self, valeur=None):
|
def charteMA(self, valeur=None):
|
||||||
"""
|
"""
|
||||||
|
@ -2154,7 +2154,7 @@ class Adherent(BaseProprietaire):
|
||||||
elif valeur == False:
|
elif valeur == False:
|
||||||
self._set('charteMA', [])
|
self._set('charteMA', [])
|
||||||
elif valeur != None:
|
elif valeur != None:
|
||||||
raise ValueError, u"charteMA prend un booléen comme argument"
|
raise ValueError("charteMA prend un booléen comme argument")
|
||||||
|
|
||||||
# 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', []))
|
||||||
|
@ -2171,7 +2171,7 @@ class Adherent(BaseProprietaire):
|
||||||
set_to = ['FALSE']
|
set_to = ['FALSE']
|
||||||
self._set('adherentPayant', set_to)
|
self._set('adherentPayant', set_to)
|
||||||
elif valeur is not None:
|
elif valeur is not None:
|
||||||
raise ValueError, u"adherentPayant prend un booléen comme argument"
|
raise ValueError("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)
|
# 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', []))
|
return not bool(self._data.get('adherentPayant', []))
|
||||||
|
@ -2210,13 +2210,13 @@ class Adherent(BaseProprietaire):
|
||||||
|
|
||||||
# Pas grand chose à faire à part vérifier que ce sont bien des chaines
|
# Pas grand chose à faire à part vérifier que ce sont bien des chaines
|
||||||
if len(index_or_new) != 3:
|
if len(index_or_new) != 3:
|
||||||
raise ValueError(u"Format études non valides.")
|
raise ValueError("Format études non valides.")
|
||||||
|
|
||||||
new = ['', '', '']
|
new = ['', '', '']
|
||||||
for i in range(0, 3):
|
for i in range(0, 3):
|
||||||
n = preattr(index_or_new[i])[1]
|
n = preattr(index_or_new[i])[1]
|
||||||
if n in new or n == '':
|
if n in new or n == '':
|
||||||
raise ValueError(u"Etudes non valides.")
|
raise ValueError("Etudes non valides.")
|
||||||
new[i] = n
|
new[i] = n
|
||||||
|
|
||||||
self._set('etudes', new)
|
self._set('etudes', new)
|
||||||
|
@ -2263,34 +2263,34 @@ class Adherent(BaseProprietaire):
|
||||||
login = login.lower()
|
login = login.lower()
|
||||||
|
|
||||||
if login and not self.adherentPayant():
|
if login and not self.adherentPayant():
|
||||||
raise ValueError(u"L'adhérent ne paie pas de cotisation, il n'a pas droit à un compte.")
|
raise ValueError("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
|
||||||
raise ValueError(u"L'adhérent à déjà un compte. Login : %s" % self._data['uid'][0])
|
raise ValueError("L'adhérent à déjà un compte. Login : %s" % self._data['uid'][0])
|
||||||
else:
|
else:
|
||||||
return login
|
return login
|
||||||
|
|
||||||
for c in login[:]:
|
for c in login[:]:
|
||||||
if not c in (string.letters + '-'):
|
if not c in (string.letters + '-'):
|
||||||
raise ValueError(u"Seuls les caractères alphabétiques non accentués et le - sont autorisés dans le login.")
|
raise ValueError("Seuls les caractères alphabétiques non accentués et le - sont autorisés dans le login.")
|
||||||
if l < 2:
|
if l < 2:
|
||||||
raise ValueError(u"Login trop court.")
|
raise ValueError("Login trop court.")
|
||||||
if l > config.maxlen_login:
|
if l > config.maxlen_login:
|
||||||
raise ValueError(u"Login trop long.")
|
raise ValueError("Login trop long.")
|
||||||
if login[0] == '-':
|
if login[0] == '-':
|
||||||
raise ValueError(u"- interdit en première position.")
|
raise ValueError("- interdit en première position.")
|
||||||
|
|
||||||
if mailexist(login):
|
if mailexist(login):
|
||||||
raise ValueError(u"Login existant ou correspondant à un alias mail.", 1)
|
raise ValueError("Login existant ou correspondant à un alias mail.", 1)
|
||||||
|
|
||||||
home = '/home/' + login
|
home = '/home/' + login
|
||||||
if os.path.exists(home):
|
if os.path.exists(home):
|
||||||
raise ValueError(u'Création du compte impossible : home existant', 1)
|
raise ValueError('Création du compte impossible : home existant', 1)
|
||||||
|
|
||||||
if os.path.exists("/var/mail/" + login):
|
if os.path.exists("/var/mail/" + login):
|
||||||
raise ValueError(u'Création du compte impossible : /var/mail/%s existant' % login, 1)
|
raise ValueError('Création du compte impossible : /var/mail/%s existant' % login, 1)
|
||||||
|
|
||||||
# Lock du mail
|
# Lock du mail
|
||||||
self.lock('mail', login)
|
self.lock('mail', login)
|
||||||
|
@ -2317,7 +2317,7 @@ class Adherent(BaseProprietaire):
|
||||||
|
|
||||||
if uidNumber:
|
if uidNumber:
|
||||||
if self.exist('(uidNumber=%s)' % uidNumber):
|
if self.exist('(uidNumber=%s)' % uidNumber):
|
||||||
raise ValueError(u'uidNumber pris')
|
raise ValueError('uidNumber pris')
|
||||||
else:
|
else:
|
||||||
pool_uid = range(1001, 9999)
|
pool_uid = range(1001, 9999)
|
||||||
random.shuffle(pool_uid)
|
random.shuffle(pool_uid)
|
||||||
|
@ -2328,7 +2328,7 @@ class Adherent(BaseProprietaire):
|
||||||
pool_uid.append(uidNumber)
|
pool_uid.append(uidNumber)
|
||||||
break
|
break
|
||||||
if not len(pool_uid):
|
if not len(pool_uid):
|
||||||
raise ValueError(u"Plus d'uid disponibles !")
|
raise ValueError("Plus d'uid disponibles !")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.lock('uidNumber', str(uidNumber))
|
self.lock('uidNumber', str(uidNumber))
|
||||||
|
@ -2370,7 +2370,7 @@ class Adherent(BaseProprietaire):
|
||||||
light permet de modifier les droits non critiques sans être Nounou."""
|
light permet de modifier les droits non critiques sans être Nounou."""
|
||||||
|
|
||||||
if droits != None and 'cransAccount' not in self._data.get('objectClass', []):
|
if droits != None and 'cransAccount' not in self._data.get('objectClass', []):
|
||||||
raise EnvironmentError(u'Il faut avoir un compte pour avoir des droits.')
|
raise EnvironmentError('Il faut avoir un compte pour avoir des droits.')
|
||||||
|
|
||||||
if droits == None:
|
if droits == None:
|
||||||
return map(decode, self._data.get('droits', []))
|
return map(decode, self._data.get('droits', []))
|
||||||
|
@ -2379,18 +2379,18 @@ class Adherent(BaseProprietaire):
|
||||||
if not light:
|
if not light:
|
||||||
from user_tests import isadm
|
from user_tests import isadm
|
||||||
if not isadm():
|
if not isadm():
|
||||||
raise EnvironmentError(u'Il faut être administrateur pour effectuer cette opération.')
|
raise EnvironmentError('Il faut être administrateur pour effectuer cette opération.')
|
||||||
|
|
||||||
# On vérifie la liste donnée
|
# On vérifie la liste donnée
|
||||||
if type(droits) != list:
|
if type(droits) != list:
|
||||||
raise TypeError(u'Une liste est attendue')
|
raise TypeError('Une liste est attendue')
|
||||||
|
|
||||||
new = []
|
new = []
|
||||||
for droit in droits:
|
for droit in droits:
|
||||||
droit = droit.strip()
|
droit = droit.strip()
|
||||||
if droit == '': continue
|
if droit == '': continue
|
||||||
if droit not in droits_possibles:
|
if droit not in droits_possibles:
|
||||||
raise ValueError(u'Droit %s incorrect' % droit)
|
raise ValueError('Droit %s incorrect' % droit)
|
||||||
new.append(droit)
|
new.append(droit)
|
||||||
|
|
||||||
ancien = self._data.get('droits', [])
|
ancien = self._data.get('droits', [])
|
||||||
|
@ -2435,7 +2435,7 @@ class Adherent(BaseProprietaire):
|
||||||
|
|
||||||
# si l'adhérent n'a pas de compte, on lève une exception
|
# si l'adhérent n'a pas de compte, on lève une exception
|
||||||
if not self.compte():
|
if not self.compte():
|
||||||
raise NotImplementedError, u"L'adhérent n'a pas de compte"
|
raise NotImplementedError("L'adhérent n'a pas de compte")
|
||||||
|
|
||||||
# tente de modifier la valeur
|
# tente de modifier la valeur
|
||||||
if rewrite == True:
|
if rewrite == True:
|
||||||
|
@ -2443,7 +2443,7 @@ class Adherent(BaseProprietaire):
|
||||||
elif rewrite == False:
|
elif rewrite == False:
|
||||||
self._set('rewriteMailHeaders', [])
|
self._set('rewriteMailHeaders', [])
|
||||||
elif rewrite != None:
|
elif rewrite != None:
|
||||||
raise ValueError, u"rewriteMailHeaders prend un booléen comme argument"
|
raise ValueError("rewriteMailHeaders prend un booléen comme argument")
|
||||||
|
|
||||||
# renvoie la valeur trouvée dans la base
|
# renvoie la valeur trouvée dans la base
|
||||||
return bool(self._data.get('rewriteMailHeaders', []))
|
return bool(self._data.get('rewriteMailHeaders', []))
|
||||||
|
@ -2457,7 +2457,7 @@ class Adherent(BaseProprietaire):
|
||||||
|
|
||||||
# si l'adhérent n'a pas de compte, on lève une exception
|
# si l'adhérent n'a pas de compte, on lève une exception
|
||||||
if not self.compte():
|
if not self.compte():
|
||||||
raise NotImplementedError, u"L'adhérent n'a pas de compte"
|
raise NotImplementedError("L'adhérent n'a pas de compte")
|
||||||
|
|
||||||
current = int(self._data.get('derniereConnexion', ['0'])[0])
|
current = int(self._data.get('derniereConnexion', ['0'])[0])
|
||||||
|
|
||||||
|
@ -2500,7 +2500,7 @@ class Club(BaseProprietaire):
|
||||||
l, new = preattr(new)
|
l, new = preattr(new)
|
||||||
new = new.capitalize()
|
new = new.capitalize()
|
||||||
if l<2:
|
if l<2:
|
||||||
raise ValueError(u"Nom trop court.")
|
raise ValueError("Nom trop court.")
|
||||||
|
|
||||||
self._set('nom', [new])
|
self._set('nom', [new])
|
||||||
return new
|
return new
|
||||||
|
@ -2528,7 +2528,7 @@ class Club(BaseProprietaire):
|
||||||
raise ValueError
|
raise ValueError
|
||||||
|
|
||||||
if not adher.id():
|
if not adher.id():
|
||||||
raise AttributeError(u'Adhérent invalide')
|
raise AttributeError('Adhérent invalide')
|
||||||
|
|
||||||
self._set('responsable', [adher.id()])
|
self._set('responsable', [adher.id()])
|
||||||
return adher
|
return adher
|
||||||
|
@ -2565,7 +2565,7 @@ class Club(BaseProprietaire):
|
||||||
|
|
||||||
annu = annuaires.locaux_clubs()
|
annu = annuaires.locaux_clubs()
|
||||||
if new not in annu.keys():
|
if new not in annu.keys():
|
||||||
raise ValueError(u'Local invalide', annu)
|
raise ValueError('Local invalide', annu)
|
||||||
|
|
||||||
self._set('chbre', [new])
|
self._set('chbre', [new])
|
||||||
return new
|
return new
|
||||||
|
@ -2586,26 +2586,26 @@ class Club(BaseProprietaire):
|
||||||
if not login.startswith('club-'):
|
if not login.startswith('club-'):
|
||||||
login = 'club-' + login
|
login = 'club-' + login
|
||||||
if not re.match('^[a-z0-9]*[a-z]+[a-z0-9-]*$', login):
|
if not re.match('^[a-z0-9]*[a-z]+[a-z0-9-]*$', login):
|
||||||
raise ValueError(u'Login incorrect')
|
raise ValueError('Login incorrect')
|
||||||
login = preattr(login)[1]
|
login = preattr(login)[1]
|
||||||
|
|
||||||
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
|
||||||
raise ValueError(u"Le club à déjà un compte. Login : %s" % self._data['uid'][0])
|
raise ValueError("Le club à déjà un compte. Login : %s" % self._data['uid'][0])
|
||||||
else:
|
else:
|
||||||
return login
|
return login
|
||||||
|
|
||||||
if mailexist(login) and not os.system('/usr/sbin/list_lists | grep -qi %s' % login):
|
if mailexist(login) and not os.system('/usr/sbin/list_lists | grep -qi %s' % login):
|
||||||
# la 2ème vérif est pour vérifier que ce n'est pas la ML du club
|
# la 2ème vérif est pour vérifier que ce n'est pas la ML du club
|
||||||
raise ValueError(u"Login existant ou correspondant à un alias mail.", 1)
|
raise ValueError("Login existant ou correspondant à un alias mail.", 1)
|
||||||
|
|
||||||
home = '/home/' + login.replace('-', '/', 1)
|
home = '/home/' + login.replace('-', '/', 1)
|
||||||
if os.path.exists(home):
|
if os.path.exists(home):
|
||||||
raise ValueError(u'Création du compte impossible : home existant', 1)
|
raise ValueError('Création du compte impossible : home existant', 1)
|
||||||
|
|
||||||
if os.path.exists("/var/mail/"+login):
|
if os.path.exists("/var/mail/"+login):
|
||||||
raise ValueError(u'Création du compte impossible : /var/mail/%s existant'%login, 1)
|
raise ValueError('Création du compte impossible : /var/mail/%s existant'%login, 1)
|
||||||
|
|
||||||
# Lock du mail
|
# Lock du mail
|
||||||
self.lock('mail', login)
|
self.lock('mail', login)
|
||||||
|
@ -2699,13 +2699,13 @@ class Machine(BaseClasseCrans):
|
||||||
|
|
||||||
chbre = self.__proprietaire.chbre()
|
chbre = self.__proprietaire.chbre()
|
||||||
# if chbre == 'EXT' and mode == 'fixe':
|
# if chbre == 'EXT' and mode == 'fixe':
|
||||||
# raise ValueError(u'Il faut une chambre pour pouvoir posséder une machine fixe')
|
# raise ValueError('Il faut une chambre pour pouvoir posséder une machine fixe')
|
||||||
|
|
||||||
if chbre == '????':
|
if chbre == '????':
|
||||||
raise ValueError(u'ERREUR: la chambre du propriétaire est inconnue')
|
raise ValueError('ERREUR: la chambre du propriétaire est inconnue')
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise TypeError(u'Arguments invalides')
|
raise TypeError('Arguments invalides')
|
||||||
|
|
||||||
def Nom(self):
|
def Nom(self):
|
||||||
""" Retourne le nom de la machine """
|
""" Retourne le nom de la machine """
|
||||||
|
@ -2728,13 +2728,13 @@ class Machine(BaseClasseCrans):
|
||||||
|
|
||||||
# La mac serait-elle déjà connue ?
|
# La mac serait-elle déjà connue ?
|
||||||
if not multi_ok and self.exist('macAddress=%s' % mac):
|
if not multi_ok and self.exist('macAddress=%s' % mac):
|
||||||
raise ValueError(u'Mac déja utilisée sur le réseau.', 1)
|
raise ValueError('Mac déja utilisée sur le réseau.', 1)
|
||||||
|
|
||||||
# La MAC serait-elle une MAC à la con ?
|
# La MAC serait-elle une MAC à la con ?
|
||||||
if mac == "00:04:4b:80:80:03":
|
if mac == "00:04:4b:80:80:03":
|
||||||
raise ValueError(u"Il s'agit de l'unique adresse MAC achetée par nVidia pour ses cartes réseau. Il faut changer cette adresse.", 2)
|
raise ValueError("Il s'agit de l'unique adresse MAC achetée par nVidia pour ses cartes réseau. Il faut changer cette adresse.", 2)
|
||||||
elif mac[0:11] == "44:45:53:54":
|
elif mac[0:11] == "44:45:53:54":
|
||||||
raise ValueError(u"Il s'agit de l'adresse MAC d'une interface PPP.", 2)
|
raise ValueError("Il s'agit de l'adresse MAC d'une interface PPP.", 2)
|
||||||
|
|
||||||
# Le test final : vendeur connu
|
# Le test final : vendeur connu
|
||||||
prefix = mac[:8].upper() + ' '
|
prefix = mac[:8].upper() + ' '
|
||||||
|
@ -2746,7 +2746,7 @@ class Machine(BaseClasseCrans):
|
||||||
break
|
break
|
||||||
except IOError:
|
except IOError:
|
||||||
# Le fichier existe pas, on sors
|
# Le fichier existe pas, on sors
|
||||||
raise RuntimeError(u"Fichier de fabriquants de MAC non trouvé !")
|
raise RuntimeError("Fichier de fabriquants de MAC non trouvé !")
|
||||||
|
|
||||||
if not multi_ok and not vendor:
|
if not multi_ok and not vendor:
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
|
@ -2770,33 +2770,33 @@ Contactez nounou si la MAC est bien celle d'une carte.""", 3)
|
||||||
l = len(new.split('.')[0])
|
l = len(new.split('.')[0])
|
||||||
|
|
||||||
if l<2:
|
if l<2:
|
||||||
raise ValueError(u"%s trop court." % champ.capitalize())
|
raise ValueError("%s trop court." % champ.capitalize())
|
||||||
|
|
||||||
if self.proprietaire().__class__ != AssociationCrans:
|
if self.proprietaire().__class__ != AssociationCrans:
|
||||||
new = new.split('.', 1)[0]
|
new = new.split('.', 1)[0]
|
||||||
for c in new[:]:
|
for c in new[:]:
|
||||||
if not c in (string.letters + string.digits + '-'):
|
if not c in (string.letters + string.digits + '-'):
|
||||||
raise ValueError(u"Seuls les caractères alphabétiques minuscules et les - sont autorisés pour %s" % champ)
|
raise ValueError("Seuls les caractères alphabétiques minuscules et les - sont autorisés pour %s" % champ)
|
||||||
|
|
||||||
if l > 17:
|
if l > 17:
|
||||||
raise ValueError(u"%s trop long." % champ.capitalize())
|
raise ValueError("%s trop long." % champ.capitalize())
|
||||||
|
|
||||||
if not new[0].isalpha():
|
if not new[0].isalpha():
|
||||||
raise ValueError(u"Le premier caractère du champ %s doit être alphabétique" % champ)
|
raise ValueError("Le premier caractère du champ %s doit être alphabétique" % champ)
|
||||||
|
|
||||||
if new.endswith('-'):
|
if new.endswith('-'):
|
||||||
raise ValueError(u"Le dernier caractère du champ %s ne peut être un tiret" % champ)
|
raise ValueError("Le dernier caractère du champ %s ne peut être un tiret" % champ)
|
||||||
|
|
||||||
# Ajout du domaine si necessaire
|
# Ajout du domaine si necessaire
|
||||||
if new.find('.') == -1:
|
if new.find('.') == -1:
|
||||||
try:
|
try:
|
||||||
new += '.' + config.domains[self.objectClass]
|
new += '.' + config.domains[self.objectClass]
|
||||||
except:
|
except:
|
||||||
raise RuntimeError(u"%s : domaine non trouvé pour %s" % (champ.capitalize(), self.__class__))
|
raise RuntimeError("%s : domaine non trouvé pour %s" % (champ.capitalize(), self.__class__))
|
||||||
|
|
||||||
# Pas déja pris ?
|
# Pas déja pris ?
|
||||||
if self.exist('(|(host=%s)(hostAlias=%s))' % (new, new)):
|
if self.exist('(|(host=%s)(hostAlias=%s))' % (new, new)):
|
||||||
raise ValueError(u"%s : nom déjà pris" % champ.capitalize())
|
raise ValueError("%s : nom déjà pris" % champ.capitalize())
|
||||||
|
|
||||||
# Lock host
|
# Lock host
|
||||||
self.lock('host', new)
|
self.lock('host', new)
|
||||||
|
@ -2918,7 +2918,7 @@ Contactez nounou si la MAC est bien celle d'une carte.""", 3)
|
||||||
net = config.NETs[proprio_subnet]
|
net = config.NETs[proprio_subnet]
|
||||||
pool_ip = lister_ip_dispo(proprio_subnet)
|
pool_ip = lister_ip_dispo(proprio_subnet)
|
||||||
except:
|
except:
|
||||||
raise RuntimeError(u'Impossible de trouver le réseau où placer la machine.')
|
raise RuntimeError('Impossible de trouver le réseau où placer la machine.')
|
||||||
else:
|
else:
|
||||||
net = config.NETs["gratuit"]
|
net = config.NETs["gratuit"]
|
||||||
pool_ip = lister_ip_dispo("gratuit")
|
pool_ip = lister_ip_dispo("gratuit")
|
||||||
|
@ -2934,19 +2934,19 @@ Contactez nounou si la MAC est bien celle d'une carte.""", 3)
|
||||||
break
|
break
|
||||||
|
|
||||||
if not len(pool_ip):
|
if not len(pool_ip):
|
||||||
raise RuntimeError(u"Plus d'IP libres dans %s." % ' et '.join(net))
|
raise RuntimeError("Plus d'IP libres dans %s." % ' et '.join(net))
|
||||||
|
|
||||||
else:
|
else:
|
||||||
# L'ip est elle dans le bon sous-réseau ?
|
# L'ip est elle dans le bon sous-réseau ?
|
||||||
# (accessoirement teste si l'IP est valide et ne correspond pas
|
# (accessoirement teste si l'IP est valide et ne correspond pas
|
||||||
# à l'adresse de broadcast ou de réseau)
|
# à l'adresse de broadcast ou de réseau)
|
||||||
if not iptools.AddrInNet(ip, net):
|
if not iptools.AddrInNet(ip, net):
|
||||||
raise ValueError(u'IP invalide ou en dehors du sous-réseau alloué.', 1)
|
raise ValueError('IP invalide ou en dehors du sous-réseau alloué.', 1)
|
||||||
# Reformatage
|
# Reformatage
|
||||||
ip = iptools.DecToQuad(iptools.QuadToDec(ip))
|
ip = iptools.DecToQuad(iptools.QuadToDec(ip))
|
||||||
# L'ip est-elle déja allouée ?
|
# L'ip est-elle déja allouée ?
|
||||||
if self.exist('ipHostNumber=%s' % ip):
|
if self.exist('ipHostNumber=%s' % ip):
|
||||||
raise ValueError(u'IP déjà prise.')
|
raise ValueError('IP déjà prise.')
|
||||||
|
|
||||||
# Lock ip
|
# Lock ip
|
||||||
self.lock('ipHostNumber', ip)
|
self.lock('ipHostNumber', ip)
|
||||||
|
@ -3015,7 +3015,7 @@ Contactez nounou si la MAC est bien celle d'une carte.""", 3)
|
||||||
"""
|
"""
|
||||||
from user_tests import isadm
|
from user_tests import isadm
|
||||||
if self.proprietaire().__class__ == AssociationCrans and not (isadm() or user_tests.getuser() == 'www-data'):
|
if self.proprietaire().__class__ == AssociationCrans and not (isadm() or user_tests.getuser() == 'www-data'):
|
||||||
raise EnvironmentError(u'Il faut être administrateur pour effectuer cette opération.')
|
raise EnvironmentError('Il faut être administrateur pour effectuer cette opération.')
|
||||||
|
|
||||||
ret = ''
|
ret = ''
|
||||||
|
|
||||||
|
@ -3104,7 +3104,7 @@ Contactez nounou si la MAC est bien celle d'une carte.""", 3)
|
||||||
""" Destruction de la machine"""
|
""" Destruction de la machine"""
|
||||||
from user_tests import isadm
|
from user_tests import isadm
|
||||||
if self.proprietaire().__class__ == AssociationCrans and not isadm():
|
if self.proprietaire().__class__ == AssociationCrans and not isadm():
|
||||||
raise EnvironmentError(u'Il faut être administrateur pour effectuer cette opération.')
|
raise EnvironmentError('Il faut être administrateur pour effectuer cette opération.')
|
||||||
|
|
||||||
|
|
||||||
self.proprio = self.__proprietaire.Nom() # On met dans un coin le nom du proprio
|
self.proprio = self.__proprietaire.Nom() # On met dans un coin le nom du proprio
|
||||||
|
@ -3157,7 +3157,7 @@ Contactez nounou si la MAC est bien celle d'une carte.""", 3)
|
||||||
assert(len(liste) == 1 or len(liste) == 2)
|
assert(len(liste) == 1 or len(liste) == 2)
|
||||||
return map(lambda x: x and int(x) or '', liste)
|
return map(lambda x: x and int(x) or '', liste)
|
||||||
except:
|
except:
|
||||||
raise ValueError(u'Spécification de ports incorrecte : %s' % x)
|
raise ValueError('Spécification de ports incorrecte : %s' % x)
|
||||||
|
|
||||||
ports = map(parse, ports)
|
ports = map(parse, ports)
|
||||||
ports.sort()
|
ports.sort()
|
||||||
|
@ -3217,7 +3217,7 @@ class MachineCrans(Machine):
|
||||||
try:
|
try:
|
||||||
new = int(new)
|
new = int(new)
|
||||||
except:
|
except:
|
||||||
raise ValueError(u'Le nombre de prises doit être un entier')
|
raise ValueError('Le nombre de prises doit être un entier')
|
||||||
|
|
||||||
vals = [24, 26, 28, 50, 52]
|
vals = [24, 26, 28, 50, 52]
|
||||||
if new not in vals:
|
if new not in vals:
|
||||||
|
@ -3310,7 +3310,7 @@ class BorneWifi(Machine):
|
||||||
raise
|
raise
|
||||||
new = new + (1 << (c - 1))
|
new = new + (1 << (c - 1))
|
||||||
except:
|
except:
|
||||||
raise ValueError(u'Canal invalide : doit être entre 0 et 13 ou une liste de canaux')
|
raise ValueError('Canal invalide : doit être entre 0 et 13 ou une liste de canaux')
|
||||||
|
|
||||||
self._set('canal', [str(new)])
|
self._set('canal', [str(new)])
|
||||||
return new
|
return new
|
||||||
|
@ -3324,7 +3324,7 @@ class BorneWifi(Machine):
|
||||||
new = int(new)
|
new = int(new)
|
||||||
if new < -99 or new > 99: raise
|
if new < -99 or new > 99: raise
|
||||||
except:
|
except:
|
||||||
raise ValueError(u'Puissance invalide : doit être entre -99 et 99')
|
raise ValueError('Puissance invalide : doit être entre -99 et 99')
|
||||||
|
|
||||||
self._set('puissance', [str(new)])
|
self._set('puissance', [str(new)])
|
||||||
return new
|
return new
|
||||||
|
@ -3456,13 +3456,13 @@ class Facture(BaseClasseCrans):
|
||||||
self._modifiable = 'w'
|
self._modifiable = 'w'
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise TypeError(u'Arguments invalides')
|
raise TypeError('Arguments invalides')
|
||||||
|
|
||||||
def numero(self):
|
def numero(self):
|
||||||
""" Retourne le numéro de facture """
|
""" Retourne le numéro de facture """
|
||||||
fid = self._data.get('fid', [None])[0]
|
fid = self._data.get('fid', [None])[0]
|
||||||
if fid == None:
|
if fid == None:
|
||||||
raise NotImplementedError, u'Il faut enregistrer une facture pour connaitre son numero'
|
raise NotImplementedError('Il faut enregistrer une facture pour connaitre son numero')
|
||||||
return fid
|
return fid
|
||||||
|
|
||||||
def nom(self):
|
def nom(self):
|
||||||
|
@ -3488,7 +3488,7 @@ class Facture(BaseClasseCrans):
|
||||||
elif 'club' in res[0][1]['objectClass']:
|
elif 'club' in res[0][1]['objectClass']:
|
||||||
self.__proprietaire = Club(res[0], self._modifiable, self.conn)
|
self.__proprietaire = Club(res[0], self._modifiable, self.conn)
|
||||||
else:
|
else:
|
||||||
raise ValueError, u'Propriétaire inconnu'
|
raise ValueError('Propriétaire inconnu')
|
||||||
|
|
||||||
return self.__proprietaire
|
return self.__proprietaire
|
||||||
|
|
||||||
|
@ -3501,13 +3501,13 @@ class Facture(BaseClasseCrans):
|
||||||
# modification du mode de paiement
|
# modification du mode de paiement
|
||||||
if new != None:
|
if new != None:
|
||||||
if self.recuPaiement():
|
if self.recuPaiement():
|
||||||
raise ValueError, u'Facture déja payée'
|
raise ValueError('Facture déja payée')
|
||||||
|
|
||||||
if not self._modifiable:
|
if not self._modifiable:
|
||||||
raise NotImplementedError, "La facture n'est pas modifiable"
|
raise NotImplementedError("La facture n'est pas modifiable")
|
||||||
|
|
||||||
if new not in ['liquide', 'cheque', 'paypal']:
|
if new not in ['liquide', 'cheque', 'paypal']:
|
||||||
raise ValueError, u'Mode de paiement non accepté'
|
raise ValueError('Mode de paiement non accepté')
|
||||||
|
|
||||||
self._set('modePaiement', [new])
|
self._set('modePaiement', [new])
|
||||||
|
|
||||||
|
@ -3520,13 +3520,13 @@ class Facture(BaseClasseCrans):
|
||||||
|
|
||||||
# on vérifie que la facture n'est pas déja payéee
|
# on vérifie que la facture n'est pas déja payéee
|
||||||
if new and self._data.get('recuPaiement', []):
|
if new and self._data.get('recuPaiement', []):
|
||||||
raise ValueError, u'Facture déja payée'
|
raise ValueError('Facture déja payée')
|
||||||
|
|
||||||
# modification de la valeur
|
# modification de la valeur
|
||||||
if new != None:
|
if new != None:
|
||||||
# on vérifie que la facture est modifiable
|
# on vérifie que la facture est modifiable
|
||||||
if not self._modifiable and new:
|
if not self._modifiable and new:
|
||||||
raise NotImplementedError, "La facture n'est pas modifiable"
|
raise NotImplementedError("La facture n'est pas modifiable")
|
||||||
|
|
||||||
# on crédite les articles, si c'est pas possible, la metode
|
# on crédite les articles, si c'est pas possible, la metode
|
||||||
# levera une exeption
|
# levera une exeption
|
||||||
|
@ -3556,7 +3556,7 @@ class Facture(BaseClasseCrans):
|
||||||
|
|
||||||
# on vérifie que le propriétaire est modifiable
|
# on vérifie que le propriétaire est modifiable
|
||||||
if not self.proprietaire()._modifiable:
|
if not self.proprietaire()._modifiable:
|
||||||
raise SystemError, u"Impossible de créditer les articles, le proprietaire n'est pas modifiable"
|
raise SystemError("Impossible de créditer les articles, le proprietaire n'est pas modifiable")
|
||||||
|
|
||||||
# on crédite les articles
|
# on crédite les articles
|
||||||
for art in self._articles():
|
for art in self._articles():
|
||||||
|
@ -3622,7 +3622,7 @@ class Facture(BaseClasseCrans):
|
||||||
"""
|
"""
|
||||||
# on ne eut pas modifier une facture payée
|
# on ne eut pas modifier une facture payée
|
||||||
if self.recuPaiement():
|
if self.recuPaiement():
|
||||||
raise ValueError, u'On ne peut pas modifier une facture payée'
|
raise ValueError('On ne peut pas modifier une facture payée')
|
||||||
|
|
||||||
# charge la liste des articles
|
# charge la liste des articles
|
||||||
arts = self._articles()
|
arts = self._articles()
|
||||||
|
@ -3633,12 +3633,12 @@ class Facture(BaseClasseCrans):
|
||||||
if type(ajoute)==list:
|
if type(ajoute)==list:
|
||||||
for art in ajoute:
|
for art in ajoute:
|
||||||
if int(art['nombre']) != float(art['nombre']):
|
if int(art['nombre']) != float(art['nombre']):
|
||||||
raise ValueError, u'nombre doit être un entier'
|
raise ValueError('nombre doit être un entier')
|
||||||
if float(int(art['pu']*100)/100.0) != art['pu']:
|
if float(int(art['pu']*100)/100.0) != art['pu']:
|
||||||
raise ValueError, u'pu ne doit pas avoir plus de 2 chiffres apres la virgule'
|
raise ValueError('pu ne doit pas avoir plus de 2 chiffres apres la virgule')
|
||||||
art['nombre'] = int(art['nombre'])
|
art['nombre'] = int(art['nombre'])
|
||||||
if '~~' in ' '.join([str(x) for x in art.values()]):
|
if '~~' in ' '.join([str(x) for x in art.values()]):
|
||||||
raise ValueError, u'Ne pas mettre de ~~ dans les champs'
|
raise ValueError('Ne pas mettre de ~~ dans les champs')
|
||||||
arts.append(art)
|
arts.append(art)
|
||||||
|
|
||||||
# enregistre la nouvelle liste
|
# enregistre la nouvelle liste
|
||||||
|
@ -3650,7 +3650,7 @@ class Facture(BaseClasseCrans):
|
||||||
"""
|
"""
|
||||||
# on ne eut pas modifier une facture payée
|
# on ne eut pas modifier une facture payée
|
||||||
if self.recuPaiement():
|
if self.recuPaiement():
|
||||||
raise ValueError, u'On ne peut pas modifier une facture payée'
|
raise ValueError('On ne peut pas modifier une facture payée')
|
||||||
|
|
||||||
# charge la liste des articles
|
# charge la liste des articles
|
||||||
arts = self._articles()
|
arts = self._articles()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue