mirror of
https://github.com/ae-utbm/sith.git
synced 2026-11-05 08:49:32 +00:00
check email toxic domain at model-level
This commit is contained in:
1 parent
4f989d82bb
commit
e980c4d727
7 files changed
+31
-9
No files matched your search
@@ -0,0 +1,4 @@
|
||||
from antispam.models.fields import AntiSpamEmailField
|
||||
from antispam.models.models import ToxicDomain
|
||||
|
||||
__all__ = ["AntiSpamEmailField", "ToxicDomain"]
|
||||
@@ -0,0 +1,21 @@
|
||||
from django.conf import settings
|
||||
from django.db import models
|
||||
|
||||
from antispam import forms
|
||||
|
||||
|
||||
class AntiSpamEmailField(models.EmailField):
|
||||
"""An email field that forbids email addresses with a known toxic domain."""
|
||||
|
||||
default_validators = [forms.validate_antispam_email]
|
||||
|
||||
|
||||
if settings.TESTING:
|
||||
from model_bakery import baker
|
||||
|
||||
baker.generators.add(
|
||||
AntiSpamEmailField, lambda: baker.random_gen.gen_email(max_length=100)
|
||||
)
|
||||
else: # pragma: no cover
|
||||
# baker is only used in tests, so we don't need coverage for this part
|
||||
pass
|
||||
@@ -0,0 +1,19 @@
|
||||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
||||
class ToxicDomain(models.Model):
|
||||
"""Domain marked as spam in public databases"""
|
||||
|
||||
domain = models.URLField(_("domain"), max_length=253, primary_key=True)
|
||||
created = models.DateTimeField(auto_now_add=True)
|
||||
is_externally_managed = models.BooleanField(
|
||||
_("is externally managed"),
|
||||
default=False,
|
||||
help_text=_(
|
||||
"True if kept up-to-date using external toxic domain providers, else False"
|
||||
),
|
||||
)
|
||||
|
||||
def __str__(self) -> str:
|
||||
return self.domain
|
||||
Reference in new issue
Block a user