(mailboxes) cannot create mailbox with same local part as alias

should not be able to create a mailbox having the same local part as an alias
This commit is contained in:
Marie PUPO JEAMMET
2025-10-24 13:17:24 +02:00
committed by Marie
parent 23561cd0e0
commit 0f7e312eb6
7 changed files with 104 additions and 5 deletions

View File

@@ -78,6 +78,17 @@ class MailboxSerializer(serializers.ModelSerializer):
return mailbox
def validate_local_part(self, value):
"""Validate this local part does not match a mailbox."""
if models.Alias.objects.filter(
local_part=value, domain__slug=self.context["domain_slug"]
):
raise exceptions.ValidationError(
f'Local part "{value}" already used by an alias.'
)
return value
class MailboxUpdateSerializer(MailboxSerializer):
"""A more restrictive serializer when updating mailboxes"""
@@ -343,7 +354,7 @@ class AliasSerializer(serializers.ModelSerializer):
local_part=value, domain__slug=self.context["domain_slug"]
).exists():
raise exceptions.ValidationError(
f'Local part "{value}" already used for a mailbox.'
f'Local part "{value}" already used by a mailbox.'
)
return value