"""Auth forms (Flask-WTF). CSRF automatic. Labels wrapped for i18n.""" from flask_wtf import FlaskForm from wtforms import StringField, PasswordField, BooleanField, SubmitField from wtforms.validators import DataRequired, Email, Length, EqualTo from flask_babel import lazy_gettext as _l class RegisterForm(FlaskForm): display_name = StringField(_l("Display name"), validators=[DataRequired(), Length(2, 80)]) email = StringField(_l("Email"), validators=[DataRequired(), Email(), Length(max=255)]) password = PasswordField(_l("Password"), validators=[DataRequired(), Length(min=8, max=128)]) confirm = PasswordField(_l("Confirm password"), validators=[DataRequired(), EqualTo("password", message=_l("Passwords must match"))]) submit = SubmitField(_l("Create account")) class LoginForm(FlaskForm): email = StringField(_l("Email"), validators=[DataRequired(), Email()]) password = PasswordField(_l("Password"), validators=[DataRequired()]) remember = BooleanField(_l("Remember me")) submit = SubmitField(_l("Sign in")) class ResetRequestForm(FlaskForm): email = StringField(_l("Email"), validators=[DataRequired(), Email()]) submit = SubmitField(_l("Send reset link")) class ResetForm(FlaskForm): password = PasswordField(_l("New password"), validators=[DataRequired(), Length(min=8, max=128)]) confirm = PasswordField(_l("Confirm password"), validators=[DataRequired(), EqualTo("password", message=_l("Passwords must match"))]) submit = SubmitField(_l("Reset password"))