mirror of
				https://github.com/ae-utbm/sith.git
				synced 2025-11-04 11:03:04 +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]
 |