aboutsummaryrefslogtreecommitdiff
path: root/app/auth/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/auth/forms.py')
-rw-r--r--app/auth/forms.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/app/auth/forms.py b/app/auth/forms.py
new file mode 100644
index 0000000..8f7662a
--- /dev/null
+++ b/app/auth/forms.py
@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+
+from flask_wtf import FlaskForm
+
+from wtforms import StringField, PasswordField, BooleanField, SubmitField
+from wtforms.validators import DataRequired, ValidationError, Email, EqualTo
+
+from app.models import User
+
+
+class LoginForm(FlaskForm):
+ username = StringField("Username", validators=[DataRequired()])
+ password = PasswordField("Password", validators=[DataRequired()])
+ remember_me = BooleanField("Remember Me")
+ submit = SubmitField("Sign In")
+
+
+class RegistrationForm(FlaskForm):
+ username = StringField("Username", validators=[DataRequired()])
+ email = StringField("Email", validators=[DataRequired(), Email()])
+ password = PasswordField("Password", validators=[DataRequired()])
+ password2 = PasswordField(
+ "Repeat Password", validators=[DataRequired(), EqualTo("password")]
+ )
+ submit = SubmitField("Register")
+
+ def validate_username(self, username):
+ user = User.query.filter_by(username=username.data).first()
+ if user is not None:
+ raise ValidationError(
+ "Username already in use, please use a different one."
+ )
+
+ def validate_email(self, email):
+ user = User.query.filter_by(email=email.data).first()
+ if user is not None:
+ raise ValidationError(
+ "Email address already in use, please use a different one."
+ )
+
+
+class ResetPasswordRequestForm(FlaskForm):
+ email = StringField("Email", validators=[DataRequired(), Email()])
+ submit = SubmitField("Request password reset")
+
+
+class ResetPasswordForm(FlaskForm):
+ password = PasswordField("Password", validators=[DataRequired()])
+ password2 = PasswordField(
+ "Repeat Password", validators=[DataRequired(), EqualTo("password")]
+ )
+ submit = SubmitField("Request Password Reset")