-
diff --git a/src/riskmatrix/views/templates/password_change.pt b/src/riskmatrix/views/templates/password_change.pt
new file mode 100644
index 0000000..dd2fb4b
--- /dev/null
+++ b/src/riskmatrix/views/templates/password_change.pt
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/riskmatrix/views/templates/password_retrieval.pt b/src/riskmatrix/views/templates/password_retrieval.pt
new file mode 100644
index 0000000..fd17e8c
--- /dev/null
+++ b/src/riskmatrix/views/templates/password_retrieval.pt
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/riskmatrix/wtform/validators.py b/src/riskmatrix/wtform/validators.py
index 5b4a468..f7871ec 100644
--- a/src/riskmatrix/wtform/validators.py
+++ b/src/riskmatrix/wtform/validators.py
@@ -16,6 +16,10 @@
r'^(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[\d])(?=.*[\W]).*$'
)
+email_regex = re.compile(
+ r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'
+)
+
def password_validator(form: 'Form', field: 'Field') -> None:
password = form['password'].data
@@ -35,6 +39,9 @@ def password_validator(form: 'Form', field: 'Field') -> None:
)
raise ValidationError(msg)
+def email_validator(form: 'Form', field: 'Field') -> None:
+ if not email_regex.match(field.data):
+ raise ValidationError('Not a valid email.')
class Immutable:
"""