lenticular_cloud2/lenticular_cloud/form/auth.py

57 lines
1.9 KiB
Python
Raw Normal View History

2020-05-09 18:00:07 +00:00
from flask_babel import gettext
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField, TextField, \
TextAreaField, PasswordField, IntegerField, FloatField, \
DateTimeField, DateField, FormField, BooleanField, \
2022-04-08 19:28:22 +00:00
SelectField, Form as NoCsrfForm, SelectMultipleField, \
HiddenField
2020-05-27 19:16:14 +00:00
from wtforms.fields.html5 import EmailField
2020-05-09 18:00:07 +00:00
from wtforms.widgets.html5 import NumberInput, DateInput
2022-04-08 19:28:22 +00:00
from wtforms.validators import DataRequired, NumberRange, Optional, NoneOf, Length, Regexp, InputRequired
2020-05-09 18:00:07 +00:00
from datetime import datetime
class LoginForm(FlaskForm):
2020-05-27 19:16:14 +00:00
name = StringField(gettext('Username'), validators=[DataRequired()])
2020-05-09 18:00:07 +00:00
submit = SubmitField(gettext('Login'))
class PasswordForm(FlaskForm):
password = PasswordField(gettext('Password'))
submit = SubmitField(gettext('Authorize'))
class TotpForm(FlaskForm):
totp = TextField(gettext('2FA Token'))
submit = SubmitField(gettext('Authorize'))
2022-04-08 19:28:22 +00:00
class WebauthnLoginForm(FlaskForm):
"""webauthn login form"""
assertion = HiddenField('Assertion', [InputRequired()])
2020-05-09 18:00:07 +00:00
class Fido2Form(FlaskForm):
fido2 = TextField(gettext('Fido2'), default="Javascript Required")
submit = SubmitField(gettext('Authorize'))
class ConsentForm(FlaskForm):
# scopes = SelectMultipleField(gettext('scopes'))
# audiences = SelectMultipleField(gettext('audiences'))
remember = BooleanField(gettext('remember'))
submit = SubmitField()
2020-05-27 19:16:14 +00:00
class RegistrationForm(FlaskForm):
username = StringField(gettext('Username'), validators=[
DataRequired(),
Regexp('^[a-zA-Z0-9-.]+$', message=gettext('Only `a-z`, `A-Z`, `0-9`, `-.` is allowed for username'))
])
password = PasswordField(gettext('Password'), validators=[
DataRequired(),
Length(min=6)
])
alternative_email = EmailField(gettext('Alternative Email'), render_kw={"placeholder": "Optional"})
2020-05-27 19:16:14 +00:00
submit = SubmitField()