CoolFace
Apppublic

SRNI-2005/ctf

sourceHugging Faceupdated 6mo agoView on Hugging Face
0likes
auth.py89 linesDownload Raw Back to forms
1from flask_babel import lazy_gettext as _l2from wtforms import PasswordField, StringField3from wtforms.fields.html5 import EmailField4from wtforms.validators import InputRequired5 6from CTFd.forms import BaseForm7from CTFd.forms.fields import SubmitField8from CTFd.forms.users import (9    attach_custom_user_fields,10    attach_registration_code_field,11    attach_user_bracket_field,12    build_custom_user_fields,13    build_registration_code_field,14    build_user_bracket_field,15)16from CTFd.utils import get_config17 18 19def RegistrationForm(*args, **kwargs):20    password_min_length = int(get_config("password_min_length", default=0))21    password_description = _l("Password used to log into your account")22    if password_min_length:23        password_description += _l(24            f" (Must be at least {password_min_length} characters)"25        )26 27    class _RegistrationForm(BaseForm):28        name = StringField(29            _l("User Name"),30            description="Your username on the site",31            validators=[InputRequired()],32            render_kw={"autofocus": True},33        )34        email = EmailField(35            _l("Email"),36            description="Never shown to the public",37            validators=[InputRequired()],38        )39        password = PasswordField(40            _l("Password"),41            description=password_description,42            validators=[InputRequired()],43        )44        submit = SubmitField(_l("Submit"))45 46        @property47        def extra(self):48            return (49                build_custom_user_fields(50                    self, include_entries=False, blacklisted_items=()51                )52                + build_registration_code_field(self)53                + build_user_bracket_field(self)54            )55 56    attach_custom_user_fields(_RegistrationForm)57    attach_registration_code_field(_RegistrationForm)58    attach_user_bracket_field(_RegistrationForm)59 60    return _RegistrationForm(*args, **kwargs)61 62 63class LoginForm(BaseForm):64    name = StringField(65        _l("User Name or Email"),66        validators=[InputRequired()],67        render_kw={"autofocus": True},68    )69    password = PasswordField(_l("Password"), validators=[InputRequired()])70    submit = SubmitField(_l("Submit"))71 72 73class ConfirmForm(BaseForm):74    submit = SubmitField(_l("Send Confirmation Email"))75 76 77class ResetPasswordRequestForm(BaseForm):78    email = EmailField(79        _l("Email"), validators=[InputRequired()], render_kw={"autofocus": True}80    )81    submit = SubmitField(_l("Submit"))82 83 84class ResetPasswordForm(BaseForm):85    password = PasswordField(86        _l("Password"), validators=[InputRequired()], render_kw={"autofocus": True}87    )88    submit = SubmitField(_l("Submit"))89