Make sure internal alias is disabled if account is disabled at creation

see #2429
This commit is contained in:
Antoine Nguyen
2022-05-13 14:42:42 +02:00
parent fa284d93bd
commit e8245d88e6
2 changed files with 27 additions and 2 deletions
+7 -2
View File
@@ -67,8 +67,13 @@ def manage_alias_for_mailbox(sender, instance, **kwargs):
"""Create or update a "self alias" for mailbox (catchall)."""
if kwargs.get("created"):
alias, created = models.Alias.objects.get_or_create(
address=instance.full_address, domain=instance.domain,
internal=True)
address=instance.full_address,
domain=instance.domain,
internal=True,
defaults={
"enabled": instance.user.enabled
}
)
models.AliasRecipient.objects.create(
address=instance.full_address, alias=alias, r_mailbox=instance)
return
+20
View File
@@ -135,6 +135,26 @@ class AccountTestCase(ModoTestCase):
self.ajax_post(reverse("admin:account_add"), values)
self.assertTrue(alias.aliasrecipient_set.count() == 2)
def test_create_disabled_account(self):
"""Check if account and alias are disabled."""
values = {
"username": "tester@test.com",
"first_name": "Tester",
"last_name": "Toto",
"password1": "Toto1234",
"password2": "Toto1234",
"role": "SimpleUsers",
"quota_act": True,
"is_active": False,
"email": "tester@test.com",
"stepid": "step2"
}
self.ajax_post(reverse("admin:account_add"), values)
account = User.objects.get(username=values["username"])
self.assertEqual(account.enabled, False)
alias = models.Alias.objects.get(address=account.email)
self.assertEqual(alias.enabled, False)
def test_aliases_update_on_disable(self):
"""Check if aliases are updated when account is disabled."""
account = User.objects.get(username="user@test.com")