From 6738336aa70ececf0fdbbefae78c78afa522d037 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Tue, 19 May 2020 12:24:38 +0200 Subject: [PATCH 2/3] misc: define email validation at the model level (#43074) --- .../custom_user/migrations/0017_auto_20200305_1645.py | 4 +++- src/authentic2/custom_user/models.py | 4 +++- src/authentic2/forms/profile.py | 6 ------ 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/authentic2/custom_user/migrations/0017_auto_20200305_1645.py b/src/authentic2/custom_user/migrations/0017_auto_20200305_1645.py index ab8c08c9..35e3a4be 100644 --- a/src/authentic2/custom_user/migrations/0017_auto_20200305_1645.py +++ b/src/authentic2/custom_user/migrations/0017_auto_20200305_1645.py @@ -4,6 +4,8 @@ from __future__ import unicode_literals from django.db import migrations, models +import authentic2.validators + class Migration(migrations.Migration): @@ -15,6 +17,6 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='user', name='email', - field=models.EmailField(blank=True, max_length=254, verbose_name='email address'), + field=models.EmailField(blank=True, max_length=254, verbose_name='email address', validators=[authentic2.validators.email_validator]), ), ] diff --git a/src/authentic2/custom_user/models.py b/src/authentic2/custom_user/models.py index 65316d71..3853b518 100644 --- a/src/authentic2/custom_user/models.py +++ b/src/authentic2/custom_user/models.py @@ -39,6 +39,7 @@ from django_rbac.utils import get_role_parenting_model from authentic2 import utils, app_settings from authentic2.decorators import errorcollector, RequestCache from authentic2.models import Service, AttributeValue, Attribute +from authentic2.validators import email_validator from .managers import UserManager, UserQuerySet @@ -148,7 +149,8 @@ class User(AbstractBaseUser, PermissionMixin): email = models.EmailField( _('email address'), blank=True, - max_length=254) + max_length=254, + validators=[email_validator]) email_verified = models.BooleanField( default=False, verbose_name=_('email verified')) diff --git a/src/authentic2/forms/profile.py b/src/authentic2/forms/profile.py index 3054ff3a..e3f37701 100644 --- a/src/authentic2/forms/profile.py +++ b/src/authentic2/forms/profile.py @@ -22,7 +22,6 @@ from django.utils.translation import ugettext_lazy as _, ugettext from authentic2 import app_settings, models from authentic2.custom_user.models import User -from authentic2.validators import email_validator from .utils import NextUrlFormMixin from .mixins import LockedFieldFormMixin from .fields import ValidatedEmailField @@ -124,11 +123,6 @@ class BaseUserForm(LockedFieldFormMixin, forms.ModelForm): self.save_m2m = save_m2m return result - def clean_email(self): - email = self.cleaned_data['email'] - email_validator(email) - return email - class EditProfileForm(NextUrlFormMixin, BaseUserForm): pass -- 2.26.2