Files
CTFd/CTFd/forms/auth.py
Kevin Chung 635b0940e5 Add Translations layer (#2288)
* Add rough translations support into CTFd
* Add `flask-babel` dependency
* Adds language column to users table
* Closes #570 

---------

Co-authored-by: Miłosz Skaza <milosz.skaza@ctfd.io>
2023-06-01 15:24:00 -04:00

63 lines
1.9 KiB
Python

from flask_babel import lazy_gettext as _l
from wtforms import PasswordField, StringField
from wtforms.fields.html5 import EmailField
from wtforms.validators import InputRequired
from CTFd.forms import BaseForm
from CTFd.forms.fields import SubmitField
from CTFd.forms.users import (
attach_custom_user_fields,
attach_registration_code_field,
build_custom_user_fields,
build_registration_code_field,
)
def RegistrationForm(*args, **kwargs):
class _RegistrationForm(BaseForm):
name = StringField(
_l("User Name"), validators=[InputRequired()], render_kw={"autofocus": True}
)
email = EmailField(_l("Email"), validators=[InputRequired()])
password = PasswordField(_l("Password"), validators=[InputRequired()])
submit = SubmitField(_l("Submit"))
@property
def extra(self):
return build_custom_user_fields(
self, include_entries=False, blacklisted_items=()
) + build_registration_code_field(self)
attach_custom_user_fields(_RegistrationForm)
attach_registration_code_field(_RegistrationForm)
return _RegistrationForm(*args, **kwargs)
class LoginForm(BaseForm):
name = StringField(
_l("User Name or Email"),
validators=[InputRequired()],
render_kw={"autofocus": True},
)
password = PasswordField(_l("Password"), validators=[InputRequired()])
submit = SubmitField(_l("Submit"))
class ConfirmForm(BaseForm):
submit = SubmitField(_l("Resend Confirmation Email"))
class ResetPasswordRequestForm(BaseForm):
email = EmailField(
_l("Email"), validators=[InputRequired()], render_kw={"autofocus": True}
)
submit = SubmitField(_l("Submit"))
class ResetPasswordForm(BaseForm):
password = PasswordField(
_l("Password"), validators=[InputRequired()], render_kw={"autofocus": True}
)
submit = SubmitField(_l("Submit"))