4.29.4
This commit is contained in:
parent
a6f4995cb5
commit
3523c9fc15
@ -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(
|
domain_and_rule = check_if_alias_can_be_auto_created_for_custom_domain(
|
||||||
address, notify_user=notify_user
|
address, notify_user=notify_user
|
||||||
)
|
)
|
||||||
|
if DomainDeletedAlias.get_by(email=address):
|
||||||
|
return None
|
||||||
if domain_and_rule:
|
if domain_and_rule:
|
||||||
return domain_and_rule[0].user
|
return domain_and_rule[0].user
|
||||||
directory = check_if_alias_can_be_auto_created_for_a_directory(
|
directory = check_if_alias_can_be_auto_created_for_a_directory(
|
||||||
|
@ -1016,6 +1016,10 @@ class User(Base, ModelMixin, UserMixin, PasswordOracle):
|
|||||||
if not self.is_premium():
|
if not self.is_premium():
|
||||||
conditions.append(SLDomain.premium_only == False) # noqa: E712
|
conditions.append(SLDomain.premium_only == False) # noqa: E712
|
||||||
partner_domain_cond = [] # noqa:E711
|
partner_domain_cond = [] # noqa:E711
|
||||||
|
if self.default_alias_public_domain_id is not None:
|
||||||
|
partner_domain_cond.append(
|
||||||
|
SLDomain.id == self.default_alias_public_domain_id
|
||||||
|
)
|
||||||
if alias_options.show_partner_domains is not None:
|
if alias_options.show_partner_domains is not None:
|
||||||
partner_user = PartnerUser.filter_by(
|
partner_user = PartnerUser.filter_by(
|
||||||
user_id=self.id, partner_id=alias_options.show_partner_domains.id
|
user_id=self.id, partner_id=alias_options.show_partner_domains.id
|
||||||
|
@ -316,6 +316,10 @@ def test_add_alias_in_global_trash(flask_client):
|
|||||||
def test_add_alias_in_custom_domain_trash(flask_client):
|
def test_add_alias_in_custom_domain_trash(flask_client):
|
||||||
user = login(flask_client)
|
user = login(flask_client)
|
||||||
|
|
||||||
|
for deleted_domain in DomainDeletedAlias.all():
|
||||||
|
Session.delete(deleted_domain)
|
||||||
|
Session.flush()
|
||||||
|
|
||||||
domain = random_domain()
|
domain = random_domain()
|
||||||
custom_domain = CustomDomain.create(
|
custom_domain = CustomDomain.create(
|
||||||
user_id=user.id, domain=domain, ownership_verified=True, commit=True
|
user_id=user.id, domain=domain, ownership_verified=True, commit=True
|
||||||
|
@ -16,6 +16,7 @@ from app.models import (
|
|||||||
Directory,
|
Directory,
|
||||||
DirectoryMailbox,
|
DirectoryMailbox,
|
||||||
User,
|
User,
|
||||||
|
DomainDeletedAlias,
|
||||||
)
|
)
|
||||||
from tests.utils import create_new_user, random_domain, random_token
|
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-.*",
|
regex="ok-.*",
|
||||||
flush=True,
|
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()
|
dir_name = random_token()
|
||||||
directory = Directory.create(name=dir_name, user_id=user.id, flush=True)
|
directory = Directory.create(name=dir_name, user_id=user.id, flush=True)
|
||||||
DirectoryMailbox.create(
|
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),
|
(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),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -128,3 +128,74 @@ def test_get_premium_with_partner_domains():
|
|||||||
assert [d.domain for d in domains] == user.available_sl_domains(
|
assert [d.domain for d in domains] == user.available_sl_domains(
|
||||||
alias_options=options
|
alias_options=options
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_partner_and_free_default_domain():
|
||||||
|
user = create_new_user()
|
||||||
|
PartnerUser.create(
|
||||||
|
partner_id=get_proton_partner().id,
|
||||||
|
user_id=user.id,
|
||||||
|
external_user_id=random_token(10),
|
||||||
|
flush=True,
|
||||||
|
)
|
||||||
|
user.default_alias_public_domain_id = (
|
||||||
|
SLDomain.filter_by(partner_id=None, hidden=False).first().id
|
||||||
|
)
|
||||||
|
Session.flush()
|
||||||
|
options = AliasOptions(
|
||||||
|
show_sl_domains=False, show_partner_domains=get_proton_partner()
|
||||||
|
)
|
||||||
|
domains = user.get_sl_domains(alias_options=options)
|
||||||
|
assert len(domains) == 3
|
||||||
|
assert domains[0].domain == "premium_partner"
|
||||||
|
assert domains[1].domain == "free_partner"
|
||||||
|
assert domains[2].domain == "free_non_partner"
|
||||||
|
assert [d.domain for d in domains] == user.available_sl_domains(
|
||||||
|
alias_options=options
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_free_partner_and_premium_default_domain():
|
||||||
|
user = create_new_user()
|
||||||
|
user.trial_end = None
|
||||||
|
PartnerUser.create(
|
||||||
|
partner_id=get_proton_partner().id,
|
||||||
|
user_id=user.id,
|
||||||
|
external_user_id=random_token(10),
|
||||||
|
flush=True,
|
||||||
|
)
|
||||||
|
user.default_alias_public_domain_id = (
|
||||||
|
SLDomain.filter_by(partner_id=None, hidden=False, premium_only=True).first().id
|
||||||
|
)
|
||||||
|
Session.flush()
|
||||||
|
options = AliasOptions(
|
||||||
|
show_sl_domains=False, show_partner_domains=get_proton_partner()
|
||||||
|
)
|
||||||
|
domains = user.get_sl_domains(alias_options=options)
|
||||||
|
assert len(domains) == 1
|
||||||
|
assert domains[0].domain == "free_partner"
|
||||||
|
assert [d.domain for d in domains] == user.available_sl_domains(
|
||||||
|
alias_options=options
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_free_partner_and_hidden_default_domain():
|
||||||
|
user = create_new_user()
|
||||||
|
user.trial_end = None
|
||||||
|
PartnerUser.create(
|
||||||
|
partner_id=get_proton_partner().id,
|
||||||
|
user_id=user.id,
|
||||||
|
external_user_id=random_token(10),
|
||||||
|
flush=True,
|
||||||
|
)
|
||||||
|
user.default_alias_public_domain_id = SLDomain.filter_by(hidden=True).first().id
|
||||||
|
Session.flush()
|
||||||
|
options = AliasOptions(
|
||||||
|
show_sl_domains=False, show_partner_domains=get_proton_partner()
|
||||||
|
)
|
||||||
|
domains = user.get_sl_domains(alias_options=options)
|
||||||
|
assert len(domains) == 1
|
||||||
|
assert domains[0].domain == "free_partner"
|
||||||
|
assert [d.domain for d in domains] == user.available_sl_domains(
|
||||||
|
alias_options=options
|
||||||
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user