From 689ef3a579c9df8431bf85feb03d799efdbb1761 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Casaj=C3=BAs?= Date: Thu, 1 Jun 2023 17:33:58 +0200 Subject: [PATCH] Check if the domain has a deleted alias (#1764) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Adrià Casajús --- app/alias_utils.py | 2 ++ tests/test_alias_utils.py | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/app/alias_utils.py b/app/alias_utils.py index 7b1305bb..3034ee88 100644 --- a/app/alias_utils.py +++ b/app/alias_utils.py @@ -57,6 +57,8 @@ def get_user_if_alias_would_auto_create( domain_and_rule = check_if_alias_can_be_auto_created_for_custom_domain( address, notify_user=notify_user ) + if DomainDeletedAlias.get_by(email=address): + return None if domain_and_rule: return domain_and_rule[0].user directory = check_if_alias_can_be_auto_created_for_a_directory( diff --git a/tests/test_alias_utils.py b/tests/test_alias_utils.py index 9795d352..2499e5fa 100644 --- a/tests/test_alias_utils.py +++ b/tests/test_alias_utils.py @@ -16,6 +16,7 @@ from app.models import ( Directory, DirectoryMailbox, User, + DomainDeletedAlias, ) from tests.utils import create_new_user, random_domain, random_token @@ -83,6 +84,11 @@ def get_auto_create_alias_tests(user: User) -> List: regex="ok-.*", flush=True, ) + deleted_alias = f"deletedalias@{catchall.domain}" + Session.add( + DomainDeletedAlias(email=deleted_alias, domain_id=catchall.id, user_id=user.id) + ) + Session.flush() dir_name = random_token() directory = Directory.create(name=dir_name, user_id=user.id, flush=True) DirectoryMailbox.create( @@ -101,6 +107,7 @@ def get_auto_create_alias_tests(user: User) -> List: (f"{dir_name}+something@{ALIAS_DOMAINS[0]}", True), (f"{dir_name}#something@{ALIAS_DOMAINS[0]}", True), (f"{dir_name}/something@{ALIAS_DOMAINS[0]}", True), + (deleted_alias, False), ]