mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-05 10:53:28 -05:00
Take out the Canadian politeness.
Make the error message more consistent. Extracted common fields for the forms.
This commit is contained in:
@@ -1,28 +1,61 @@
|
||||
from datetime import datetime
|
||||
from flask import session
|
||||
|
||||
from flask_wtf import Form
|
||||
from wtforms import StringField, PasswordField, ValidationError
|
||||
from wtforms.validators import DataRequired, Email, Length, Regexp
|
||||
from app.main.validators import Blacklist, ValidateUserCodes
|
||||
|
||||
|
||||
def email_address():
|
||||
gov_uk_email \
|
||||
= "(^[^@^\\s]+@[^@^\\.^\\s]+(\\.[^@^\\.^\\s]*)*.gov.uk)"
|
||||
return StringField('Email address', validators=[
|
||||
Length(min=5, max=255),
|
||||
DataRequired(message='Email cannot be empty'),
|
||||
Email(message='Enter a valid email address'),
|
||||
Regexp(regex=gov_uk_email, message='Enter a gov.uk email address')])
|
||||
|
||||
|
||||
def mobile_number():
|
||||
mobile_number_regex = "^\\+44[\\d]{10}$"
|
||||
return StringField('Mobile phone number',
|
||||
validators=[DataRequired(message='Mobile number can not be empty'),
|
||||
Regexp(regex=mobile_number_regex, message='Enter a +44 mobile number')])
|
||||
|
||||
|
||||
def password():
|
||||
return PasswordField('Create a password',
|
||||
validators=[DataRequired(message='Password can not be empty'),
|
||||
Length(10, 255, message='Password must be at least 10 characters'),
|
||||
Blacklist(message='That password is blacklisted, too common')])
|
||||
|
||||
|
||||
def sms_code():
|
||||
verify_code = '^\d{5}$'
|
||||
return StringField('Text message confirmation code',
|
||||
validators=[DataRequired(message='Text message confirmation code can not be empty'),
|
||||
Regexp(regex=verify_code,
|
||||
message='Text message confirmation code must be 5 digits'),
|
||||
ValidateUserCodes(code_type='sms')])
|
||||
|
||||
|
||||
def email_code():
|
||||
verify_code = '^\d{5}$'
|
||||
return StringField("Email confirmation code",
|
||||
validators=[DataRequired(message='Email confirmation code can not be empty'),
|
||||
Regexp(regex=verify_code, message='Email confirmation code must be 5 digits'),
|
||||
ValidateUserCodes(code_type='email')])
|
||||
|
||||
|
||||
class LoginForm(Form):
|
||||
email_address = StringField('Email address', validators=[
|
||||
Length(min=5, max=255),
|
||||
DataRequired(message='Email cannot be empty'),
|
||||
Email(message='Please enter a valid email address')
|
||||
Email(message='Enter a valid email address')
|
||||
])
|
||||
password = PasswordField('Password', validators=[
|
||||
DataRequired(message='Please enter your password')
|
||||
DataRequired(message='Enter your password')
|
||||
])
|
||||
|
||||
|
||||
gov_uk_email = "(^[^@^\\s]+@[^@^\\.^\\s]+(\\.[^@^\\.^\\s]*)*.gov.uk)"
|
||||
mobile_number = "^\\+44[\\d]{10}$"
|
||||
verify_code = '^\d{5}$'
|
||||
|
||||
|
||||
class RegisterUserForm(Form):
|
||||
def __init__(self, existing_email_addresses, existing_mobile_numbers, *args, **kwargs):
|
||||
self.existing_emails = existing_email_addresses
|
||||
@@ -31,19 +64,9 @@ class RegisterUserForm(Form):
|
||||
|
||||
name = StringField('Full name',
|
||||
validators=[DataRequired(message='Name can not be empty')])
|
||||
email_address = StringField('Email address', validators=[
|
||||
Length(min=5, max=255),
|
||||
DataRequired(message='Email cannot be empty'),
|
||||
Email(message='Please enter a valid email address'),
|
||||
Regexp(regex=gov_uk_email, message='Please enter a gov.uk email address')
|
||||
])
|
||||
mobile_number = StringField('Mobile phone number',
|
||||
validators=[DataRequired(message='Please enter your mobile number'),
|
||||
Regexp(regex=mobile_number, message='Please enter a +44 mobile number')])
|
||||
password = PasswordField('Create a password',
|
||||
validators=[DataRequired(message='Please enter your password'),
|
||||
Length(10, 255, message='Password must be at least 10 characters'),
|
||||
Blacklist(message='That password is blacklisted, too common')])
|
||||
email_address = email_address()
|
||||
mobile_number = mobile_number()
|
||||
password = password()
|
||||
|
||||
def validate_email_address(self, field):
|
||||
# Validate email address is unique.
|
||||
@@ -59,7 +82,6 @@ class RegisterUserForm(Form):
|
||||
|
||||
|
||||
class TwoFactorForm(Form):
|
||||
|
||||
def __init__(self, user_codes, *args, **kwargs):
|
||||
'''
|
||||
Keyword arguments:
|
||||
@@ -69,13 +91,10 @@ class TwoFactorForm(Form):
|
||||
self.user_codes = user_codes
|
||||
super(TwoFactorForm, self).__init__(*args, **kwargs)
|
||||
|
||||
sms_code = StringField('sms code', validators=[DataRequired(message='Enter verification code'),
|
||||
Regexp(regex=verify_code, message='Code must be 5 digits'),
|
||||
ValidateUserCodes(code_type='sms')])
|
||||
sms_code = sms_code()
|
||||
|
||||
|
||||
class VerifyForm(Form):
|
||||
|
||||
def __init__(self, user_codes, *args, **kwargs):
|
||||
'''
|
||||
Keyword arguments:
|
||||
@@ -85,29 +104,16 @@ class VerifyForm(Form):
|
||||
self.user_codes = user_codes
|
||||
super(VerifyForm, self).__init__(*args, **kwargs)
|
||||
|
||||
sms_code = StringField("Text message confirmation code",
|
||||
validators=[DataRequired(message='SMS code can not be empty'),
|
||||
Regexp(regex=verify_code, message='Code must be 5 digits'),
|
||||
ValidateUserCodes(code_type='sms')])
|
||||
email_code = StringField("Email confirmation code",
|
||||
validators=[DataRequired(message='Email code can not be empty'),
|
||||
Regexp(regex=verify_code, message='Code must be 5 digits'),
|
||||
ValidateUserCodes(code_type='email')])
|
||||
sms_code = sms_code()
|
||||
email_code = email_code()
|
||||
|
||||
|
||||
class EmailNotReceivedForm(Form):
|
||||
email_address = StringField('Email address', validators=[
|
||||
Length(min=5, max=255),
|
||||
DataRequired(message='Email cannot be empty'),
|
||||
Email(message='Please enter a valid email address'),
|
||||
Regexp(regex=gov_uk_email, message='Please enter a gov.uk email address')
|
||||
])
|
||||
email_address = email_address()
|
||||
|
||||
|
||||
class TextNotReceivedForm(Form):
|
||||
mobile_number = StringField('Mobile phone number', validators=[
|
||||
DataRequired(message='Please enter your mobile number'),
|
||||
Regexp(regex=mobile_number, message='Please enter a +44 mobile number')])
|
||||
mobile_number = mobile_number()
|
||||
|
||||
|
||||
class AddServiceForm(Form):
|
||||
@@ -116,7 +122,7 @@ class AddServiceForm(Form):
|
||||
super(AddServiceForm, self).__init__(*args, **kwargs)
|
||||
|
||||
service_name = StringField(validators=[
|
||||
DataRequired(message='Please enter your service name')])
|
||||
DataRequired(message='Service name can not be empty')])
|
||||
|
||||
def validate_service_name(self, a):
|
||||
if self.service_name.data in self.service_names:
|
||||
@@ -124,16 +130,8 @@ class AddServiceForm(Form):
|
||||
|
||||
|
||||
class ForgotPasswordForm(Form):
|
||||
email_address = StringField('Email address',
|
||||
validators=[Length(min=5, max=255),
|
||||
DataRequired(message='Email cannot be empty'),
|
||||
Email(message='Please enter a valid email address'),
|
||||
Regexp(regex=gov_uk_email, message='Please enter a gov.uk email address')
|
||||
])
|
||||
email_address = email_address()
|
||||
|
||||
|
||||
class NewPasswordForm(Form):
|
||||
new_password = StringField('Create a password',
|
||||
validators=[DataRequired(message='Please enter your password'),
|
||||
Length(10, 255, message='Password must be at least 10 characters'),
|
||||
Blacklist(message='That password is blacklisted, too common')])
|
||||
new_password = password()
|
||||
|
||||
@@ -13,7 +13,7 @@ def forgot_password():
|
||||
send_change_password_email(form.email_address.data)
|
||||
return render_template('views/password-reset-sent.html')
|
||||
else:
|
||||
flash('The email address is not recognized. Try again.')
|
||||
flash('The email address is not recognized. Enter the password you registered with.')
|
||||
return render_template('views/forgot-password.html', form=form)
|
||||
else:
|
||||
return render_template('views/forgot-password.html', form=form)
|
||||
|
||||
Reference in New Issue
Block a user