Files
classifieds/app/blueprints/auth/forms.py
T
2026-06-15 11:23:05 -04:00

40 lines
1.7 KiB
Python

"""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"))