Correction on signup
This commit is contained in:
@@ -3,7 +3,7 @@ from flask_bcrypt import Bcrypt
|
||||
|
||||
import sqlite3
|
||||
import glob, os, sys, time
|
||||
from tools.utils import email_disp, valid_token_register, valid_passwd
|
||||
from tools.utils import email_disp, valid_token_register, valid_passwd, valid_username
|
||||
from socket import gethostname
|
||||
|
||||
app = Flask( 'pywallter' )
|
||||
@@ -30,7 +30,7 @@ inscription = Blueprint('inscription', __name__, template_folder='templates')
|
||||
@inscription.route( '/inscription/<token>', methods=['GET','POST'] )
|
||||
def signin(token) :
|
||||
hostname = gethostname()
|
||||
url_inscription = BASE_URL+'inscription/'+token
|
||||
url_inscription = url_for('loginlogout.index', _external=True)+'inscription/'+token
|
||||
resp = None
|
||||
if valid_token_register(token):
|
||||
if 'username' in session :
|
||||
@@ -48,32 +48,20 @@ def signin(token) :
|
||||
if request.method == 'POST':
|
||||
|
||||
#On test si aucun champs du formulaire n'est vide.
|
||||
if MAIL_SERVER:
|
||||
if len(request.form['user']) == 0 or \
|
||||
len(request.form['passwd']) == 0 or \
|
||||
len(request.form['passwdconfirm']) == 0 or \
|
||||
len(request.form['mail']) == 0 :
|
||||
flash(u'Il faut remplir le formulaire en entier, les champs ne peuvent pas etre vide ', 'error')
|
||||
return render_template('inscription.html',
|
||||
signin_enable=app.config['SIGNIN_ENABLE'],
|
||||
token=token, hostname=hostname,
|
||||
url_inscription=url_inscription,
|
||||
MAIL_SERVER=MAIL_SERVER, XMPP_SEVER=XMPP_SERVER)
|
||||
else:
|
||||
if len(request.form['user']) == 0 or \
|
||||
len(request.form['passwd']) == 0 or \
|
||||
len(request.form['passwdconfirm']) == 0:
|
||||
if len(request.form['user']) == 0 or \
|
||||
len(request.form['passwd']) == 0 or \
|
||||
len(request.form['passwdconfirm']) == 0:
|
||||
|
||||
flash(u'Il faut remplir le formulaire en entier, les champs ne peuvent pas etre vide ', 'error')
|
||||
return render_template('inscription.html',
|
||||
signin_enable=app.config['SIGNIN_ENABLE'],
|
||||
token=token, hostname=hostname,
|
||||
url_inscription=url_inscription,
|
||||
MAIL_SERVER=MAIL_SERVER, XMPP_SERVER=XMPP_SERVER)
|
||||
flash(u'Il faut remplir le formulaire en entier, les champs ne peuvent pas etre vide ', 'error')
|
||||
return render_template('inscription.html',
|
||||
signin_enable=app.config['SIGNIN_ENABLE'],
|
||||
token=token, hostname=hostname,
|
||||
url_inscription=url_inscription,
|
||||
MAIL_SERVER=MAIL_SERVER, XMPP_SERVER=XMPP_SERVER)
|
||||
|
||||
|
||||
user = request.form['user']
|
||||
passwd = request.form['passwd']
|
||||
mail = user+'@'+hostname
|
||||
passwdconfirm = request.form['passwdconfirm']
|
||||
bcrypt_passwd = bcrypt.generate_password_hash(request.form['passwd'])
|
||||
mail_passwd_change = 0
|
||||
@@ -88,8 +76,9 @@ def signin(token) :
|
||||
testuser = cursor.fetchone()
|
||||
conn.close()
|
||||
|
||||
if testuser:
|
||||
flash(u'Non d\'utilisateur déjà utilisé, merci d\'en choisir un autre', 'error')
|
||||
if testuser and valid_username(user):
|
||||
flash(u'Non d\'utilisateur déjà utilisé ou contient des caractères invalides, merci d\'en choisir un autre', 'error')
|
||||
flash(u'Les caractères espaces et \' ( ) < > , ; : " [ ] | ç % & ne sont pas autorisés', 'error')
|
||||
not_error = False
|
||||
|
||||
if not(password_valid):
|
||||
@@ -97,9 +86,9 @@ def signin(token) :
|
||||
not_error = False
|
||||
|
||||
if MAIL_SERVER:
|
||||
mail = request.form['mail'].lower()+'@'+hostname
|
||||
mail = user.lower()+'@'+hostname
|
||||
if not(email_disp(mail)) :
|
||||
flash(u'Adresse email déjà utilisé ou invalide, merci d\'en choisir une autre', 'error')
|
||||
flash(u'Cette Adresse email est déjà utilisée , merci d\'en choisir une autre', 'error')
|
||||
not_error = False
|
||||
|
||||
if not_error:
|
||||
|
||||
@@ -42,12 +42,12 @@ def login() :
|
||||
conn.close()
|
||||
password = request.form['passwd']
|
||||
for user in users:
|
||||
print (user[0])
|
||||
passwd = str(user[1] )
|
||||
print ( passwd[2:(len(passwd)-1 )] )
|
||||
if user[0] == request.form['user'] and bcrypt.check_password_hash(user[1], password) is True:
|
||||
session['username'] = request.form['user']
|
||||
resp = redirect(url_for('profil.profile', _external=True))
|
||||
else:
|
||||
flash(u'Mauvais nom d\'utilisateur ou mot de passe', 'error')
|
||||
else:
|
||||
resp = render_template('accueil.html', signin_enable=app.config['SIGNIN_ENABLE'])
|
||||
return resp
|
||||
|
||||
@@ -327,36 +327,42 @@ def delete_account():
|
||||
cursor = conn.cursor() # Création de l'objet "curseur"
|
||||
cursor.execute("""SELECT passwd FROM users WHERE name=?""", (UTILISATEUR,))
|
||||
passwd = cursor.fetchone()[0]
|
||||
cursor.execute("""SELECT mail FROM users WHERE name=?""", (UTILISATEUR,))
|
||||
mail = cursor.fetchone()[0]
|
||||
conn.close()
|
||||
password = request.form['passwd']
|
||||
if bcrypt.check_password_hash(passwd, password) is True:
|
||||
not_error = True
|
||||
try:
|
||||
cmd = 'rm -r ' + DATAS_USER + '/' + UTILISATEUR
|
||||
if system(cmd) != 0:
|
||||
raise TypeError("Remove directory error")
|
||||
except:
|
||||
not_error = False
|
||||
flash(u'Erreur lors de la suppression de votre dossier utilisateur.', 'error')
|
||||
|
||||
|
||||
if MAIL_SERVER:
|
||||
try:
|
||||
cmd = SETUID + ' set_mail_passwd del' + '"'+mail+'"'
|
||||
system(cmd)
|
||||
cmd = SETUID + ' set_mail_passwd del ' + '"'+mail+'"'
|
||||
print(cmd)
|
||||
os.system(cmd)
|
||||
except:
|
||||
not_error = False
|
||||
flash(u'Erreur lors de la suppression de votre compte Mail.', 'error')
|
||||
|
||||
|
||||
|
||||
if XMPP_SERVER:
|
||||
try:
|
||||
tmp = mail.split('@')
|
||||
cmd = SETUID+ ' prosodyctl deluser ' "'"+tmp[0]+"' " + "'"+tmp[1]+"'"
|
||||
system(cmd)
|
||||
os.system(cmd)
|
||||
except:
|
||||
not_error = False
|
||||
flash(u'Erreur lors de la suppression de votre compte XMPP.', 'error')
|
||||
|
||||
if not_error:
|
||||
try:
|
||||
cmd = 'rm -r ' + DATAS_USER + '/' + UTILISATEUR
|
||||
if os.system(cmd) != 0:
|
||||
raise TypeError("Remove directory error")
|
||||
except:
|
||||
flash(u'Erreur lors de la suppression de votre dossier utilisateur.', 'error')
|
||||
|
||||
|
||||
try:
|
||||
conn = sqlite3.connect(DATABASE)
|
||||
cursor = conn.cursor()
|
||||
|
||||
Reference in New Issue
Block a user