# -*- coding: UTF-8 -* """Formulaires authentification TODO: à revoir complètement pour reprendre ZScoUsers et les pages d'authentification """ from flask_wtf import FlaskForm from wtforms import StringField, PasswordField, BooleanField, SubmitField from wtforms.validators import ValidationError, DataRequired, Email, EqualTo from app.auth.models import User _ = lambda x: x # sans babel _l = _ class LoginForm(FlaskForm): username = StringField(_l("Username"), validators=[DataRequired()]) password = PasswordField(_l("Password"), validators=[DataRequired()]) remember_me = BooleanField(_l("Remember Me")) submit = SubmitField(_l("Sign In")) class UserCreationForm(FlaskForm): username = StringField(_l("Username"), validators=[DataRequired()]) email = StringField(_l("Email"), validators=[DataRequired(), Email()]) password = PasswordField(_l("Password"), validators=[DataRequired()]) password2 = PasswordField( _l("Repeat Password"), validators=[DataRequired(), EqualTo("password")] ) submit = SubmitField(_l("Register")) def validate_username(self, username): user = User.query.filter_by(username=username.data).first() if user is not None: raise ValidationError(_("Please use a different username.")) def validate_email(self, email): user = User.query.filter_by(email=email.data).first() if user is not None: raise ValidationError(_("Please use a different email address.")) class ResetPasswordRequestForm(FlaskForm): email = StringField(_l("Email"), validators=[DataRequired(), Email()]) submit = SubmitField(_l("Request Password Reset")) class ResetPasswordForm(FlaskForm): password = PasswordField(_l("Password"), validators=[DataRequired()]) password2 = PasswordField( _l("Repeat Password"), validators=[DataRequired(), EqualTo("password")] ) submit = SubmitField(_l("Request Password Reset"))