diff --git a/app/email_utils.py b/app/email_utils.py index ca5aa0414..742806de8 100644 --- a/app/email_utils.py +++ b/app/email_utils.py @@ -592,7 +592,7 @@ def email_can_be_used_as_mailbox(email_address: str) -> bool: from app.models import CustomDomain - if CustomDomain.get_by(domain=domain, verified=True): + if CustomDomain.get_by(domain=domain, is_sl_subdomain=True, verified=True): LOG.d("domain %s is a SimpleLogin custom domain", domain) return False diff --git a/tests/test_email_utils.py b/tests/test_email_utils.py index 7e133f1f0..c2cc8ab9e 100644 --- a/tests/test_email_utils.py +++ b/tests/test_email_utils.py @@ -90,12 +90,19 @@ def test_can_be_used_as_personal_email(flask_client): assert not email_can_be_used_as_mailbox("ab@sl.local") assert not email_can_be_used_as_mailbox("hey@d1.test") - # custom domain + # custom domain as SL domain domain = random_domain() user = create_new_user() - CustomDomain.create(user_id=user.id, domain=domain, verified=True, commit=True) + domain_obj = CustomDomain.create( + user_id=user.id, domain=domain, verified=True, is_sl_subdomain=True, flush=True + ) assert not email_can_be_used_as_mailbox(f"hey@{domain}") + # custom domain is NOT SL domain + domain_obj.is_sl_subdomain = False + Session.flush() + assert email_can_be_used_as_mailbox(f"hey@{domain}") + # disposable domain disposable_domain = random_domain() InvalidMailboxDomain.create(domain=disposable_domain, commit=True)