mirror of
https://github.com/ae-utbm/sith.git
synced 2025-04-16 11:00:21 +00:00
23 lines
700 B
Python
23 lines
700 B
Python
from django import forms
|
|
from django.core.validators import EmailValidator
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
from antispam.models import ToxicDomain
|
|
|
|
|
|
class AntiSpamEmailValidator(EmailValidator):
|
|
def __call__(self, value: str):
|
|
super().__call__(value)
|
|
domain_part = value.rsplit("@", 1)[1]
|
|
if ToxicDomain.objects.filter(domain=domain_part).exists():
|
|
raise forms.ValidationError(_("Email domain is not allowed."))
|
|
|
|
|
|
validate_antispam_email = AntiSpamEmailValidator()
|
|
|
|
|
|
class AntiSpamEmailField(forms.EmailField):
|
|
"""An email field that email addresses with a known toxic domain."""
|
|
|
|
default_validators = [validate_antispam_email]
|