You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
2.1 KiB

from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField, BooleanField
from wtforms.validators import DataRequired, EqualTo, ValidationError, Length
from wtforms_validators import NotEqualTo
from app.models import User
class LoginForm(FlaskForm):
username = StringField('Username', validators=[DataRequired()])
password = PasswordField('Password', validators=[DataRequired()])
remember_me = BooleanField('Remember Me', default=True)
submit = SubmitField('Sign In')
class RegistrationForm(FlaskForm):
username = StringField('Username', validators=[DataRequired(), Length(min=0, max=64)])
password = PasswordField('Password', validators=[DataRequired(), Length(min=0, max=128)])
password2 = PasswordField(
'Repeat Password', validators=[DataRequired(), EqualTo('password', 'Field must be equal to Password')])
submit = SubmitField('Register')
def validate_username(self, username):
user = User.query.filter_by(name=username.data).first()
if user is not None:
raise ValidationError('Please use a different username.')
class ChangePasswordForm(FlaskForm):
old_password = PasswordField('Old Password',
validators=[DataRequired(), Length(min=0, max=128)])
new_password = PasswordField('New Password',
validators=[DataRequired(), Length(min=0, max=128),
NotEqualTo('old_password', 'Please choose a new password')])
new_password2 = PasswordField(
'Repeat New Password', validators=[DataRequired(), EqualTo('new_password', 'Field must be equal to New Password')])
submit = SubmitField('Apply')
class SetPasswordForm(FlaskForm):
new_password = PasswordField('New Password', validators=[DataRequired(),
Length(min=0, max=128)])
new_password2 = PasswordField(
'Repeat New Password', validators=[DataRequired(), EqualTo('new_password', 'Field must be equal to New Password')])
submit = SubmitField('Set Password')