[jabber] ajout du cgi pour créer un compte jabber
darcs-hash:20090728100655-bd074-9a4cf910f821f6b2dc69d8e9c74fe496ea6a37d7.gz
This commit is contained in:
parent
e5d6982a1e
commit
aaf52989f6
9 changed files with 521 additions and 0 deletions
97
jabber/lostPassword.py
Executable file
97
jabber/lostPassword.py
Executable file
|
@ -0,0 +1,97 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
########################################################################
|
||||
# Fichier : lostPassword.py
|
||||
# Qu'est-ce que ça fait : génère automatiquement un nouveau mot de passe
|
||||
# et l'envoie à l'utilisateur
|
||||
#
|
||||
# Configuration :
|
||||
#
|
||||
# le répertoire où sont stoqués les fichiers xml des comptes jabber
|
||||
#jabberuserdir='/var/lib/jabber/jabber.crans.org/' # Avec un / à la fin
|
||||
from fonctions import jabberuserdir
|
||||
# Le fichier de log
|
||||
logfile='/var/log/jabber/inscriptions.log'
|
||||
########################################################################
|
||||
|
||||
########################################################################
|
||||
# Si on a reçu de champs du formulaire
|
||||
# -> l'utilisateur a envoyer son login et son mail
|
||||
# -> s'ils correspondent bien à un fichier xml
|
||||
# on envoie le mail avec le nouveau mot de passe
|
||||
# -> s'il y a une erreur, on réaffiche le formulaire
|
||||
# Sinon on affiche juste la template du formulaire
|
||||
|
||||
import os, cgi, string, time, sys, fonctions
|
||||
form = cgi.FieldStorage()
|
||||
print "content-type: text/html"
|
||||
print
|
||||
|
||||
erreur = ''
|
||||
|
||||
file=open('/var/www/jabber/template')
|
||||
html=file.read()
|
||||
|
||||
try :
|
||||
form['traitement'] # Si ne passe pas c'est que la page est donnée sans arguments
|
||||
# Récupération des arguments et test
|
||||
try :
|
||||
user=form['user'].value
|
||||
user=string.lower(user)
|
||||
for i in user[:] :
|
||||
if not i in string.lowercase+string.digits : raise
|
||||
if not user[0] in string.lowercase : raise
|
||||
col_user='FFFFFF'
|
||||
except :
|
||||
col_user='FF0000'
|
||||
user=''
|
||||
|
||||
filename=jabberuserdir+user+".xml"
|
||||
|
||||
if user:
|
||||
if not os.path.exists(filename) :
|
||||
erreur+= "<b>Erreur : </b>login inconnu : "+user+"<br><br>"
|
||||
col_user='FFFF00'
|
||||
user=''
|
||||
|
||||
try :
|
||||
mail = form['mail'].value
|
||||
mail = string.lower(mail)
|
||||
col_mail = 'FFFFFF'
|
||||
if user:
|
||||
if not mail == fonctions.XMLMailForUser(user): raise
|
||||
except :
|
||||
erreur+= "<b>Erreur : </b>adresse mail incorecte.<br><br>"
|
||||
mail=''
|
||||
col_mail='FF0000'
|
||||
|
||||
# Fin des tests
|
||||
except : # si ce n'est pas passé : on a pas reçu le formulaire
|
||||
user = '' ; col_user='FFFFFF'
|
||||
mail = '' ; col_mail='FFFFFF'
|
||||
|
||||
if user and mail:
|
||||
t=time.localtime()
|
||||
timestamp=''
|
||||
for i in [0,1,2,3,4,5] :
|
||||
if t[i]<10 : timestamp += "0%s" % t[i]
|
||||
else : timestamp += "%s" % t[i]
|
||||
timestamp=timestamp[0:8]+"T"+timestamp[8:10]+':'+timestamp[10:12]+':'+timestamp[12:14]
|
||||
|
||||
newPassword = fonctions.GenPasswd()
|
||||
# enregistrer le nouveau mot de passe
|
||||
fonctions.chgePasswordForUser(user,newPassword)
|
||||
# envoyer un mail
|
||||
fonctions.sendmail(fonctions.parse_file('./templates/mail.tpl', {'mail':mail, 'password':newPassword}))
|
||||
# ecrire la confirmation
|
||||
print html % (fonctions.parse_file('./templates/new_password_confirm.tpl',{'mail':mail}))
|
||||
|
||||
# Paranoia : on loggue
|
||||
#file=open(logfile,'a')
|
||||
#file.write("%s %s %s %s.%s\n" % (timestamp, os.environ['REMOTE_HOST'], user, prenom, nom) )
|
||||
#file.close()
|
||||
else:
|
||||
# on affiche le formulaire
|
||||
print html % (fonctions.parse_file('./templates/new_password_form.tpl',{'mail':mail, 'user':user, 'col_user':col_user, 'col_mail':col_mail, 'erreur':erreur}))
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue