aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.rst1
-rw-r--r--ihatemoney/forms.py7
-rw-r--r--requirements.txt1
3 files changed, 7 insertions, 2 deletions
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 382e889..7947b1a 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -14,6 +14,7 @@ Fixed
- Fix the generation of the supervisord template (#309)
- Fix the validation of the hashed password (#310)
- Fix infinite loop that happened when accessing / (#358)
+- Fix email validation when sending invites
Added
=====
diff --git a/ihatemoney/forms.py b/ihatemoney/forms.py
index 3966891..de9004d 100644
--- a/ihatemoney/forms.py
+++ b/ihatemoney/forms.py
@@ -10,6 +10,8 @@ from werkzeug.security import generate_password_hash
from datetime import datetime
from jinja2 import Markup
+import email_validator
+
from ihatemoney.models import Project, Person
from ihatemoney.utils import slugify
@@ -184,9 +186,10 @@ class InviteForm(FlaskForm):
submit = SubmitField(_("Send invites"))
def validate_emails(form, field):
- validator = Email()
for email in [email.strip() for email in form.emails.data.split(",")]:
- if not validator.regex.match(email):
+ try:
+ email_validator.validate_email(email)
+ except email_validator.EmailNotValidError as e:
raise ValidationError(_("The email %(email)s is not valid",
email=email))
diff --git a/requirements.txt b/requirements.txt
index c2fe534..964d7fc 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -11,3 +11,4 @@ raven
blinker
six>=1.10
itsdangerous>=0.24
+email_validator>=1.0