06/15 Phase 1 + 2 codes

This commit is contained in:
2026-06-15 11:23:05 -04:00
commit c2064b84b4
62 changed files with 2937 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
"""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"))