if alias has been deleted before, do not auto-create it with directory or catch-all domain

This commit is contained in:
Son NK 2020-02-14 10:52:18 +07:00
parent 9e2121825d
commit b663703232
1 changed files with 41 additions and 17 deletions

View File

@ -68,6 +68,7 @@ from app.models import (
CustomDomain,
Directory,
User,
DeletedAlias,
)
from app.utils import random_string
from server import create_app
@ -154,7 +155,21 @@ class MailHandler:
if directory:
dir_user: User = directory.user
if dir_user.can_create_new_alias():
LOG.d("create alias %s for directory %s", alias, directory)
# if alias has been deleted before, do not auto-create it
if DeletedAlias.get_by(
email=alias, user_id=directory.user_id
):
LOG.error(
"Alias %s has been deleted before, cannot auto-create using directory %s, user %s",
alias,
directory_name,
dir_user,
)
else:
LOG.d(
"create alias %s for directory %s", alias, directory
)
on_the_fly = True
gen_email = GenEmail.create(
@ -182,6 +197,15 @@ class MailHandler:
if custom_domain and custom_domain.catch_all:
domain_user: User = custom_domain.user
if domain_user.can_create_new_alias():
# if alias has been deleted before, do not auto-create it
if DeletedAlias.get_by(email=alias, user_id=custom_domain.user_id):
LOG.error(
"Alias %s has been deleted before, cannot auto-create using domain catch-all %s, user %s",
alias,
custom_domain,
domain_user,
)
else:
LOG.d("create alias %s for domain %s", alias, custom_domain)
on_the_fly = True