diff --git a/users/forms.py b/users/forms.py index 49135266..97fb3fc3 100644 --- a/users/forms.py +++ b/users/forms.py @@ -138,6 +138,12 @@ class UserCreationForm(FormRevMixin, forms.ModelForm): prefix = kwargs.pop('prefix', self.Meta.model.__name__) super(UserCreationForm, self).__init__(*args, prefix=prefix, **kwargs) + def clean_email(self): + if not OptionalUser.objects.first().local_email_domain in self.cleaned_data.get('email'): + return self.cleaned_data.get('email').lower() + else: + raise forms.ValidationError("You can't use an internal address as your external address.") + class Meta: model = Adherent fields = ('pseudo', 'surname', 'email') @@ -308,6 +314,12 @@ class AdherentForm(FormRevMixin, FieldPermissionFormMixin, ModelForm): self.fields['room'].empty_label = "Pas de chambre" self.fields['school'].empty_label = "Séléctionner un établissement" + def clean_email(self): + if not OptionalUser.objects.first().local_email_domain in self.cleaned_data.get('email'): + return self.cleaned_data.get('email').lower() + else: + raise forms.ValidationError("Vous ne pouvez pas utiliser une addresse {}".format(OptionalUser.objects.first().local_email_domain)) + class Meta: model = Adherent fields = [ @@ -323,6 +335,7 @@ class AdherentForm(FormRevMixin, FieldPermissionFormMixin, ModelForm): 'gpg_fingerprint' ] + def clean_telephone(self): """Verifie que le tel est présent si 'option est validée dans preferences""" @@ -607,6 +620,9 @@ class EMailAddressForm(FormRevMixin, ModelForm): super(EMailAddressForm, self).__init__(*args, prefix=prefix, **kwargs) self.fields['local_part'].label = "Local part of the email" self.fields['local_part'].help_text = "Can't contain @" + + def clean_local_part(self): + return self.cleaned_data.get('local_part').lower() class Meta: model = EMailAddress @@ -631,6 +647,12 @@ class EmailSettingsForm(FormRevMixin, FieldPermissionFormMixin, ModelForm): "Enable the use of the local email account" ) + def clean_email(self): + if not OptionalUser.objects.first().local_email_domain in self.cleaned_data.get('email'): + return self.cleaned_data.get('email').lower() + else: + raise forms.ValidationError("Vous ne pouvez pas utiliser une addresse {}".format(OptionalUser.objects.first().local_email_domain)) + class Meta: model = User fields = ['email', 'local_email_redirect', 'local_email_enabled']