mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
Merge pull request #2400 from fpoulain/fix_account_alias
Fix account alias on legacy interface
This commit is contained in:
@@ -420,10 +420,12 @@ class AccountFormMail(forms.Form, DynamicForm):
|
||||
alias__address=alias).exists():
|
||||
continue
|
||||
local_part, domname = split_mailbox(alias)
|
||||
al = models.Alias(address=alias, enabled=account.is_active)
|
||||
al.domain = models.Domain.objects.get(name=domname)
|
||||
al.save()
|
||||
al.set_recipients([self.mb.full_address])
|
||||
al, _ = models.Alias.objects.get_or_create(
|
||||
address=alias,
|
||||
domain=models.Domain.objects.get(name=domname),
|
||||
defaults={'enabled': account.is_active},
|
||||
)
|
||||
al.add_recipients([self.mb.full_address])
|
||||
al.post_create(user)
|
||||
|
||||
def _update_sender_addresses(self):
|
||||
|
||||
@@ -137,8 +137,8 @@ class Alias(AdminObject):
|
||||
for admin in self.domain.admins:
|
||||
grant_access_to_object(admin, self)
|
||||
|
||||
def set_recipients(self, address_list):
|
||||
"""Set recipients for this alias.
|
||||
def add_recipients(self, address_list):
|
||||
"""Add recipients for this alias.
|
||||
|
||||
Special recipients:
|
||||
* local mailbox + extension: r_mailbox will be set to local mailbox
|
||||
@@ -187,6 +187,11 @@ class Alias(AdminObject):
|
||||
kwargs["r_mailbox"] = rcpt
|
||||
AliasRecipient(**kwargs).save()
|
||||
|
||||
def set_recipients(self, address_list):
|
||||
"""Set recipients for this alias."""
|
||||
|
||||
self.add_recipients(address_list)
|
||||
|
||||
# Remove old recipients
|
||||
self.aliasrecipient_set.exclude(
|
||||
address__in=address_list).delete()
|
||||
|
||||
@@ -119,6 +119,22 @@ class AccountTestCase(ModoTestCase):
|
||||
account = User.objects.get(username=values["username"])
|
||||
self.assertEqual(account.language, "fr")
|
||||
|
||||
def test_create_account_with_existing_alias(self):
|
||||
alias = models.Alias.objects.get(address="alias@test.com")
|
||||
alias.set_recipients(["user@external.com"])
|
||||
values = {
|
||||
"email": "tester@test.com",
|
||||
"username": "tester@test.com",
|
||||
"role": "SimpleUsers",
|
||||
"random_password": "on",
|
||||
"quota_act": True,
|
||||
"is_active": True,
|
||||
"stepid": "step2",
|
||||
"aliases": "alias@test.com",
|
||||
}
|
||||
self.ajax_post(reverse("admin:account_add"), values)
|
||||
self.assertTrue(alias.aliasrecipient_set.count() == 2)
|
||||
|
||||
def test_aliases_update_on_disable(self):
|
||||
"""Check if aliases are updated when account is disabled."""
|
||||
account = User.objects.get(username="user@test.com")
|
||||
|
||||
Reference in New Issue
Block a user