2019-02-04 17:02:25 +01:00
|
|
|
from flask_login import current_user
|
2019-02-03 16:52:42 +01:00
|
|
|
from wtforms.validators import ValidationError
|
2019-02-04 18:48:31 +01:00
|
|
|
from app.models.users import User, Member
|
2019-02-03 16:52:42 +01:00
|
|
|
|
2019-03-30 22:37:57 +01:00
|
|
|
def name_valid(form, name):
|
2019-02-11 00:15:09 +01:00
|
|
|
if not User.valid_name(name.data):
|
|
|
|
raise ValidationError("Nom d'utilisateur invalide.")
|
2019-03-30 22:37:57 +01:00
|
|
|
|
|
|
|
def name_available(form, name):
|
2019-02-03 16:52:42 +01:00
|
|
|
member = Member.query.filter_by(name=name.data).first()
|
|
|
|
if member is not None:
|
|
|
|
raise ValidationError('Pseudo indisponible.')
|
|
|
|
|
|
|
|
def email(form, email):
|
|
|
|
member = Member.query.filter_by(email=email.data).first()
|
|
|
|
if member is not None:
|
|
|
|
raise ValidationError('Adresse email déjà utilisée.')
|
|
|
|
|
|
|
|
def password(form, password):
|
|
|
|
if len(password.data) != 0 and len(password.data) < 10:
|
2019-02-04 17:02:25 +01:00
|
|
|
raise ValidationError('Mot de passe est trop court (10 caractères minimum).')
|
2019-02-03 16:52:42 +01:00
|
|
|
# TODO: add more rules >:]
|
|
|
|
|
2019-02-04 17:02:25 +01:00
|
|
|
def avatar(form, avatar):
|
|
|
|
pass
|
|
|
|
|
|
|
|
def old_password(form, field):
|
|
|
|
if field.data:
|
|
|
|
if not form.old_password.data:
|
|
|
|
raise ValidationError('Votre ancien mot de passe est requis pour cette modification.')
|
|
|
|
if not current_user.check_password(form.old_password.data):
|
|
|
|
raise ValidationError('Mot de passe actuel erroné.')
|