Correction on signup
This commit is contained in:
parent
f5901a2ed4
commit
5ccf91701f
@ -9,8 +9,8 @@ function animation() {
|
||||
x[0].style.animation = "disparition 0.2s 1";
|
||||
}
|
||||
|
||||
window.setTimeout(divhider, 2200);
|
||||
window.setTimeout(animation, 2000);
|
||||
window.setTimeout(divhider, 8800);
|
||||
window.setTimeout(animation, 8000);
|
||||
|
||||
let darkBoxVisible = false;
|
||||
|
||||
|
@ -28,7 +28,9 @@
|
||||
<br/>
|
||||
<strong> Site en construction permanente. </strong></p>
|
||||
<br>
|
||||
<p class="lead">
|
||||
|
||||
{% include '_flash_msgs.html' %}
|
||||
<p class="lead">
|
||||
<form method="POST" action="{{ url_for('loginlogout.login') }}">
|
||||
<input type="text" name="user" id="user" placeholder="Utilisateur" class="form-control" width="200px"><br />
|
||||
<input type="password" name="passwd" id="passwd" placeholder="Mot de passe" class="form-control"><br />
|
||||
@ -38,24 +40,12 @@
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{# on affiche les messages d'erreur puis les messages de succes #}
|
||||
{% for categorie in ['error', 'succes'] %}
|
||||
{% with msgs = get_flashed_messages(category_filter=[categorie]) %}
|
||||
{% if msgs %}
|
||||
|
||||
<div class="flashed {{ categorie }}">
|
||||
{% for m in msgs %}
|
||||
<p>{{ m|safe }}</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
{% endfor %}
|
||||
|
||||
|
||||
{% endblock %}
|
||||
|
||||
|
@ -25,26 +25,24 @@
|
||||
<div class="inner cover">
|
||||
<h1 class="cover-heading">Inscription</h1>
|
||||
<br>
|
||||
|
||||
{% include '_flash_msgs.html' %}
|
||||
|
||||
{% if signin_enable %}
|
||||
<form method="POST" class="form-horizontal" action="{{ url_inscription }}">
|
||||
<h4> Choisissez votre nom d'utilisateur pour vous connecter sur le portail pywallter </h4>
|
||||
<input type="text" name="user" id="user" placeholder="Pseudo" class="form-control"><br />
|
||||
{% if MAIL_SERVER or XMPP_SERVER %}
|
||||
<h4> Choisissez votre adresse sur ce serveur (Entrez juste le nom pas besoin de préciser le domaine) </h4>
|
||||
<p> Par exemple vous voulez toto@{{hostname}}; vous entrez juste toto :) </p>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-7">
|
||||
<input type="text" name="mail" id="mail" placeholder="Adresse mail" class="form-control">
|
||||
</div>
|
||||
<label class="control-label col-sm-2" for="pwd">@{{ hostname }}</label>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<p>
|
||||
Votre nom d'utilisateur vous servira à vous connecter à votre compte Mail et de messagerie instantanné (XMPP)
|
||||
Par exemple vous souhaitez l'adresse toto@{{hostname}}; vous entrez le nom d'utilisateur toto :)
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
<input type="password" name="passwd" id="passwd" placeholder="Mot de passe" class="form-control"><br />
|
||||
<input type="password" name="passwdconfirm" id="passwdconfirm" placeholder="Confirmation du mot de passe" class="form-control"><br />
|
||||
<br>
|
||||
<button id="tada" class="btn btn-default btn-primary" type="submit">Envoyer</button>
|
||||
<button id="tada" class="btn btn-default btn-primary" type="submit">Créer mon compte</button>
|
||||
</form>
|
||||
{% else %}
|
||||
<p class="lead">
|
||||
@ -56,20 +54,6 @@
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<div class="msginfo">
|
||||
{# On affiche les messages d'erreur puis les messages de succés #}
|
||||
{% for categorie in ['error', 'succes'] %}
|
||||
{% with msgs = get_flashed_messages(category_filter=[categorie]) %}
|
||||
{% if msgs %}
|
||||
<div class="flashed {{ categorie }}">
|
||||
{% for m in msgs %}
|
||||
<p>{{ m|safe }}</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<div class="mastfoot">
|
||||
<div class="inner">
|
||||
|
@ -9,9 +9,11 @@
|
||||
<div class="col-sm-3"></div>
|
||||
<div class="col-sm-6">
|
||||
<br />
|
||||
<div class="well">Ici, vous pouvez envoyer des fichiers afin de les sauvegarder ou de les rendre accessibles à quelqu'un d'autre. Ils seront par la suite disponibles en téléchargement dans notre rubrique <a href="/view/"><span class="glyphicon glyphicon-cloud-download" aria-hidden="true"></span> Fichiers</a>. Les images envoyées, quand à elles se retrouveront directement dans la <a href="/gallery/"><span class="glyphicon glyphicon-eye-open" aria-hidden="true"></span> Gallerie</a>.<br>Ayez bien conscience que ce site est une expérience est qu'il est indispensable d'avoir une sauvegarde de tous vos fichiers. Nous ne pourrons, en aucun cas, être tenu responsable de la perte de vos données. Merci de votre compréhension.</div>
|
||||
<br />
|
||||
<div class="panel panel-primary">
|
||||
<div class="well">Ici, vous pouvez envoyer des fichiers afin de les sauvegarder ou de les rendre accessibles à quelqu'un d'autre. Ils seront par la suite disponibles en téléchargement dans notre rubrique <a href="/view/"><span class="glyphicon glyphicon-cloud-download" aria-hidden="true"></span> Fichiers</a>. Les images envoyées, quand à elles se retrouveront directement dans la <a href="/gallery/"><span class="glyphicon glyphicon-eye-open" aria-hidden="true"></span> Gallerie</a>.<br>Ayez bien conscience que ce site est une expérience est qu'il est indispensable d'avoir une sauvegarde de tous vos fichiers. Nous ne pourrons, en aucun cas, être tenu responsable de la perte de vos données. Merci de votre compréhension.
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">Choisissez un ou plusieurs fichiers à uploader</h3>
|
||||
</div>
|
||||
@ -39,13 +41,11 @@
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--<script src="https://en.lichess.org/training/embed?theme=blue3&bg=auto"></script>
|
||||
<script src="https://en.lichess.org/tv/embed?theme=blue2&bg=dark"></script>-->
|
||||
|
||||
|
||||
|
||||
|
@ -23,6 +23,17 @@ def append_to_log(log_line, user):
|
||||
log.close()
|
||||
|
||||
|
||||
def valid_username(username):
|
||||
valid=True
|
||||
# Caractères non autorisés dans la RFC #822
|
||||
invalid_char = { '(', ')', '<', '>', ',', ';', ':', '"', '[', ']', '|', 'ç', '%', '&', ' ' }
|
||||
|
||||
for character in invalid_char:
|
||||
if character in username:
|
||||
valid=False
|
||||
|
||||
return valid
|
||||
|
||||
|
||||
def email_disp(email):
|
||||
disp = True
|
||||
@ -31,13 +42,6 @@ def email_disp(email):
|
||||
conn = sqlite3.connect(DATABASE) # Connexion à la base de donnée
|
||||
cursor = conn.cursor() # Création de l'objet "curseur"
|
||||
|
||||
# Caractères non autorisés dans la RFC #822
|
||||
invalid_char = { '(', ')', '<', '>', ',', ';', ':', '"', '[', ']', '|', 'ç', '%', '&' }
|
||||
|
||||
for character in invalid_char:
|
||||
if character in email:
|
||||
disp=False
|
||||
|
||||
cursor.execute("""SELECT mail FROM users WHERE mail=?""", (email,))
|
||||
testmail = cursor.fetchall()
|
||||
if testmail and disp:
|
||||
|
@ -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()
|
||||
|
Loading…
Reference in New Issue
Block a user