From ce3dae2a07921f19270f307c2978f2e8e96f1139 Mon Sep 17 00:00:00 2001 From: Son NK <> Date: Mon, 7 Dec 2020 10:55:13 +0100 Subject: [PATCH] inform user when an alias can't be created when a directory is disabled --- app/alias_utils.py | 7 ++++++ app/config.py | 3 +++ app/email_utils.py | 23 +++++++++++++++++++ ...annot-create-alias-directory-disabled.html | 20 ++++++++++++++++ ...cannot-create-alias-directory-disabled.txt | 10 ++++++++ 5 files changed, 63 insertions(+) create mode 100644 templates/emails/transactional/cannot-create-alias-directory-disabled.html create mode 100644 templates/emails/transactional/cannot-create-alias-directory-disabled.txt diff --git a/app/alias_utils.py b/app/alias_utils.py index 0b24eafd..a36f93a0 100644 --- a/app/alias_utils.py +++ b/app/alias_utils.py @@ -8,6 +8,7 @@ from app.email_utils import ( send_cannot_create_directory_alias, send_cannot_create_domain_alias, can_create_directory_for_address, + send_cannot_create_directory_alias_disabled, ) from app.errors import AliasInTrashError from app.extensions import db @@ -66,6 +67,12 @@ def try_auto_create_directory(address: str) -> Optional[Alias]: send_cannot_create_directory_alias(dir_user, address, directory_name) return None + if directory.disabled: + send_cannot_create_directory_alias_disabled( + dir_user, address, directory_name + ) + return None + try: LOG.d("create alias %s for directory %s", address, directory) diff --git a/app/config.py b/app/config.py index 3350920a..2ee05ebc 100644 --- a/app/config.py +++ b/app/config.py @@ -324,6 +324,9 @@ ALERT_MAILBOX_IS_ALIAS = "mailbox_is_alias" AlERT_WRONG_MX_RECORD_CUSTOM_DOMAIN = "custom_domain_mx_record_issue" +# alert when a new alias is about to be created on a disabled directory +ALERT_DIRECTORY_DISABLED_ALIAS_CREATION = "alert_directory_disabled_alias_creation" + # <<<<< END ALERT EMAIL >>>> # Disable onboarding emails diff --git a/app/email_utils.py b/app/email_utils.py index 4ca2d42c..b8f9359c 100644 --- a/app/email_utils.py +++ b/app/email_utils.py @@ -37,6 +37,7 @@ from app.config import ( URL, LANDING_PAGE_URL, EMAIL_DOMAIN, + ALERT_DIRECTORY_DISABLED_ALIAS_CREATION, ) from app.dns_utils import get_mx_domains from app.extensions import db @@ -172,6 +173,28 @@ def send_cannot_create_directory_alias(user, alias_address, directory_name): directory=directory_name, ), ) + + +def send_cannot_create_directory_alias_disabled(user, alias_address, directory_name): + """when the directory is disabled, new alias can't be created on-the-fly. + Send user an email to notify of an attempt + """ + send_email_with_rate_control( + user, + ALERT_DIRECTORY_DISABLED_ALIAS_CREATION, + user.email, + f"Alias {alias_address} cannot be created", + render( + "transactional/cannot-create-alias-directory-disabled.txt", + name=user.name, + alias=alias_address, + directory=directory_name, + ), + render( + "transactional/cannot-create-alias-directory-disabled.html", + name=user.name, + alias=alias_address, + directory=directory_name, ), ) diff --git a/templates/emails/transactional/cannot-create-alias-directory-disabled.html b/templates/emails/transactional/cannot-create-alias-directory-disabled.html new file mode 100644 index 00000000..c30b70fe --- /dev/null +++ b/templates/emails/transactional/cannot-create-alias-directory-disabled.html @@ -0,0 +1,20 @@ +{% extends "base.html" %} + +{% block content %} + {{ render_text("Hi " + name) }} + + {% call text() %} + An email has been sent to the alias {{ alias }} that would be created automatically as you own the directory {{ directory }} + {% endcall %} + + {% call text() %} + As on-the-fly alias creation is disabled on this directory, the alias isn't created. + {% endcall %} + + {% call text() %} + If you aren't aware of this alias, that probably means someone has discovered about your directory and is abusing it. + {% endcall %} + + + {{ render_text('Thanks,
SimpleLogin Team.') }} +{% endblock %} diff --git a/templates/emails/transactional/cannot-create-alias-directory-disabled.txt b/templates/emails/transactional/cannot-create-alias-directory-disabled.txt new file mode 100644 index 00000000..852ca610 --- /dev/null +++ b/templates/emails/transactional/cannot-create-alias-directory-disabled.txt @@ -0,0 +1,10 @@ +Hi {{name}} + +An email has been sent to the alias {{alias}} that would be created automatically as you own the directory {{directory}}. + +As the directory has the on-the-fly alias creation disabled, the alias isn't created. + +If you aren't aware of this alias, that probably means someone has discovered about your directory and is abusing it. + +Best, +SimpleLogin team.