forked from hack4impact/flask-base
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathforms.py
More file actions
74 lines (62 loc) · 2.17 KB
/
forms.py
File metadata and controls
74 lines (62 loc) · 2.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
from flask_wtf import Form
from wtforms import ValidationError
from wtforms.ext.sqlalchemy.fields import QuerySelectField
from wtforms.fields import (
PasswordField,
StringField,
SubmitField,
)
from wtforms.fields.html5 import EmailField
from wtforms.validators import (
Email,
EqualTo,
InputRequired,
Length,
)
from app import db
from app.models import Role, User
class ChangeUserEmailForm(Form):
email = EmailField(
'New email', validators=[InputRequired(),
Length(1, 64),
Email()])
submit = SubmitField('Update email')
def validate_email(self, field):
if User.query.filter_by(email=field.data).first():
raise ValidationError('Email already registered.')
class ChangeAccountTypeForm(Form):
role = QuerySelectField(
'New account type',
validators=[InputRequired()],
get_label='name',
query_factory=lambda: db.session.query(Role).order_by('permissions'))
submit = SubmitField('Update role')
class InviteUserForm(Form):
role = QuerySelectField(
'Account type',
validators=[InputRequired()],
get_label='name',
query_factory=lambda: db.session.query(Role).order_by('permissions'))
first_name = StringField(
'First name', validators=[InputRequired(),
Length(1, 64)])
last_name = StringField(
'Last name', validators=[InputRequired(),
Length(1, 64)])
email = EmailField(
'Email', validators=[InputRequired(),
Length(1, 64),
Email()])
submit = SubmitField('Invite')
def validate_email(self, field):
if User.query.filter_by(email=field.data).first():
raise ValidationError('Email already registered.')
class NewUserForm(InviteUserForm):
password = PasswordField(
'Password',
validators=[
InputRequired(),
EqualTo('password2', 'Passwords must match.')
])
password2 = PasswordField('Confirm password', validators=[InputRequired()])
submit = SubmitField('Create')