[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 # Auteur : Stéphane Glondu
# Licence : GPLv2 # Licence : GPLv2
import sys, os, httplib, urllib import sys, os, httplib, urllib, locale
from getpass import getpass from getpass import getpass
from smtplib import SMTP from smtplib import SMTP
from email.MIMEBase import MIMEBase from email.MIMEBase import MIMEBase
@ -17,7 +17,7 @@ sys.path.append("/usr/scripts/gestion")
from affich_tools import coul, prompt, cprint from affich_tools import coul, prompt, cprint
from user_tests import getuser from user_tests import getuser
bugmail = ["glondu@crans.org"] bugmail = ["glondu@crans.org", "adg@crans.org"]
bugreport = u""" bugreport = u"""
Nom d'utilisateur : %(name)s Nom d'utilisateur : %(name)s
Adresse e-mail : %(email)s Adresse e-mail : %(email)s
@ -39,12 +39,12 @@ def send(msg):
smtp.quit() smtp.quit()
def creer_compte(nom, mdp, email): def creer_compte(nom, mdp, email):
form = {'action': 'userform', form = {'action': 'newaccount',
'name': nom.encode(encoding), 'name': nom.encode(encoding),
'password': mdp, 'password1': mdp,
'password2': mdp, 'password2': mdp,
'email': email.encode(encoding), 'email': email.encode(encoding),
'create': 'Create Profile'} 'create_only': 'Create+Profile'}
params = urllib.urlencode(form) params = urllib.urlencode(form)
headers = {"Content-type": "application/x-www-form-urlencoded", headers = {"Content-type": "application/x-www-form-urlencoded",
"Accept": "text/plain"} "Accept": "text/plain"}
@ -62,6 +62,8 @@ def creer_compte(nom, mdp, email):
return coul(u"Le compte %s existe déjà !" % nom, "rouge") return coul(u"Le compte %s existe déjà !" % nom, "rouge")
elif 'This email already belongs to somebody else.' in data: elif 'This email already belongs to somebody else.' in data:
return coul(u"L'adresse %s est déjà utilisée !" % email, "rouge") 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: 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 = coul(u"Le nom d'utilisateur %s est invalide !" % nom, "rouge")
msg += u""" msg += u"""
@ -70,7 +72,7 @@ Le nom d'utilisateur doit
Il peut contenir n'importe quel caractère alphanumérique, avec Il peut contenir n'importe quel caractère alphanumérique, avec
éventuellement un espace facultatif entre chaque mot. Il peut aussi éventuellement un espace facultatif entre chaque mot. Il peut aussi
contenir des accents, mais assurez-vous que votre terminal est 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 return msg
else: else:
html = MIMEBase('text', 'html') html = MIMEBase('text', 'html')
@ -86,7 +88,6 @@ correctement configur
u"Un rapport de bug a été automatiquement envoyé. Réessayez plus tard." u"Un rapport de bug a été automatiquement envoyé. Réessayez plus tard."
if __name__ == '__main__': if __name__ == '__main__':
try: try:
nom = prompt("Nom d'utilisateur (utiliser un WikiNom) : ") nom = prompt("Nom d'utilisateur (utiliser un WikiNom) : ")
while True: while True:
@ -94,12 +95,11 @@ if __name__ == '__main__':
if getpass(coul("Confirmation du mot de passe : ", "gras")) == mdp: if getpass(coul("Confirmation du mot de passe : ", "gras")) == mdp:
break break
else: 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 : ") email = prompt("Adresse e-mail : ")
print creer_compte(nom, mdp, email) print creer_compte(nom, mdp, email)
except KeyboardInterrupt: except KeyboardInterrupt:
os.system('clear')
print "Interruption par l'utilisateur." print "Interruption par l'utilisateur."
exit = 255 exit = 255