[wiki-lenny] creer_compte_wiki.py

darcs-hash:20081220120849-bd074-595c99c439cad63326f5c1dc7ba5de86b0b61f98.gz
This commit is contained in:
Antoine Durand-Gasselin 2008-12-20 13:08:49 +01:00
parent f03aab53b9
commit 4f77ce66c8

View file

@ -5,7 +5,7 @@
# Auteur : Stéphane Glondu
# Licence : GPLv2
import sys, os, httplib, urllib
import sys, os, httplib, urllib, locale
from getpass import getpass
from smtplib import SMTP
from email.MIMEBase import MIMEBase
@ -17,7 +17,7 @@ sys.path.append("/usr/scripts/gestion")
from affich_tools import coul, prompt, cprint
from user_tests import getuser
bugmail = ["glondu@crans.org"]
bugmail = ["glondu@crans.org", "adg@crans.org"]
bugreport = u"""
Nom d'utilisateur : %(name)s
Adresse e-mail : %(email)s
@ -39,12 +39,12 @@ def send(msg):
smtp.quit()
def creer_compte(nom, mdp, email):
form = {'action': 'userform',
form = {'action': 'newaccount',
'name': nom.encode(encoding),
'password': mdp,
'password1': mdp,
'password2': mdp,
'email': email.encode(encoding),
'create': 'Create Profile'}
'create_only': 'Create+Profile'}
params = urllib.urlencode(form)
headers = {"Content-type": "application/x-www-form-urlencoded",
"Accept": "text/plain"}
@ -62,6 +62,8 @@ def creer_compte(nom, mdp, email):
return coul(u"Le compte %s existe déjà !" % nom, "rouge")
elif 'This email already belongs to somebody else.' in data:
return coul(u"L'adresse %s est déjà utilisée !" % email, "rouge")
elif 'Password not acceptable: Password too short.' in data:
return coul(u"Le mot de passe choisi est trop court", "rouge")
elif 'Invalid user name' in data or "Nom d'utilisateur invalide" in data:
msg = coul(u"Le nom d'utilisateur %s est invalide !" % nom, "rouge")
msg += u"""
@ -70,7 +72,7 @@ Le nom d'utilisateur doit
Il peut contenir n'importe quel caractère alphanumérique, avec
éventuellement un espace facultatif entre chaque mot. Il peut aussi
contenir des accents, mais assurez-vous que votre terminal est
correctement configuré (en ISO-8859-1 ou ISO-8859-15)."""
correctement configuré (en %s).""" % (locale.getdefaultlocale()[1])
return msg
else:
html = MIMEBase('text', 'html')
@ -86,29 +88,27 @@ correctement configur
u"Un rapport de bug a été automatiquement envoyé. Réessayez plus tard."
if __name__ == '__main__':
try:
nom = prompt("Nom d'utilisateur (utiliser un WikiNom) :")
nom = prompt("Nom d'utilisateur (utiliser un WikiNom) : ")
while True:
mdp = getpass(coul("Mot de passe (ne pas utiliser le même que pour zamok) : ", "gras"))
if getpass(coul("Confirmation du mot de passe :", "gras")) == mdp:
if getpass(coul("Confirmation du mot de passe : ", "gras")) == mdp:
break
else:
cprint(u"Les deux mots de passe sont différents, veuillez réessayer...", "rouge")
cprint(u"Les deux mots de passe sont différents, veuillez réessayer...", "jaune")
email = prompt("Adresse e-mail : ")
print creer_compte(nom, mdp, email)
except KeyboardInterrupt:
os.system('clear')
print "Interruption par l'utilisateur."
exit = 255
except SystemExit, c:
if c.__str__() == '254':
os.system('reset')
print "Votre session d'édition à été tuée."
exit = c
except:
import traceback
msg = MIMEText('\n'.join(traceback.format_exception(sys.exc_type, sys.exc_value, sys.exc_traceback)).encode(encoding), 'plain', encoding)