CoolFace
Apppublic

SRNI-2005/ctf

sourceHugging Faceupdated 6mo agoView on Hugging Face
0likes
self.py62 linesDownload Raw Back to forms
1from flask import session2from flask_babel import lazy_gettext as _l3from wtforms import PasswordField, SelectField, StringField, TextAreaField4from wtforms.fields.html5 import DateField, URLField5 6from CTFd.constants.languages import SELECT_LANGUAGE_LIST7from CTFd.forms import BaseForm8from CTFd.forms.fields import SubmitField9from CTFd.forms.users import (10    attach_custom_user_fields,11    attach_user_bracket_field,12    build_custom_user_fields,13    build_user_bracket_field,14)15from CTFd.utils.countries import SELECT_COUNTRIES_LIST16from CTFd.utils.user import get_current_user, get_current_user_attrs17 18 19def SettingsForm(*args, **kwargs):20    class _SettingsForm(BaseForm):21        name = StringField(_l("User Name"))22        email = StringField(_l("Email"))23        language = SelectField(_l("Language"), choices=SELECT_LANGUAGE_LIST)24        password = PasswordField(_l("Password"))25        confirm = PasswordField(_l("Current Password"))26        affiliation = StringField(_l("Affiliation"))27        website = URLField(_l("Website"))28        country = SelectField(_l("Country"), choices=SELECT_COUNTRIES_LIST)29        submit = SubmitField(_l("Submit"))30 31        @property32        def extra(self):33            user = get_current_user_attrs()34            fields_kwargs = _SettingsForm.get_field_kwargs()35            return build_custom_user_fields(36                self,37                include_entries=True,38                fields_kwargs=fields_kwargs,39                field_entries_kwargs={"user_id": session["id"]},40            ) + build_user_bracket_field(self, value=user.bracket_id)41 42        @staticmethod43        def get_field_kwargs():44            user = get_current_user()45            field_kwargs = {"editable": True}46            if user.filled_all_required_fields is False:47                # Show all fields48                field_kwargs = {}49            return field_kwargs50 51    field_kwargs = _SettingsForm.get_field_kwargs()52    attach_custom_user_fields(_SettingsForm, **field_kwargs)53    attach_user_bracket_field(_SettingsForm)54 55    return _SettingsForm(*args, **kwargs)56 57 58class TokensForm(BaseForm):59    expiration = DateField(_l("Expiration"))60    description = TextAreaField("Usage Description")61    submit = SubmitField(_l("Generate"))62