mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-26 06:08:38 +01:00
@@ -100,8 +100,9 @@ class Alias(AdminObject):
|
||||
grant_access_to_object(admin, self)
|
||||
|
||||
def set_recipients(self, address_list):
|
||||
"""Set recipients for this alias. Special recipients:
|
||||
"""Set recipients for this alias.
|
||||
|
||||
Special recipients:
|
||||
* local mailbox + extension: r_mailbox will be set to local mailbox
|
||||
* alias address == recipient address: valid only to keep local copies
|
||||
(when a forward is defined) and to create exceptions when a catchall
|
||||
|
||||
@@ -20,19 +20,26 @@ class ForwardTestCase(ModoTestCase):
|
||||
|
||||
def test_set_forward(self):
|
||||
self.client.logout()
|
||||
self.client.login(username='user@test.com', password='toto')
|
||||
url = reverse('user_forward')
|
||||
self.client.login(username="user@test.com", password="toto")
|
||||
url = reverse("user_forward")
|
||||
self.ajax_post(
|
||||
url,
|
||||
{'dest': 'user@extdomain.com', 'keepcopies': True}
|
||||
{"dest": "user@extdomain.com", "keepcopies": True}
|
||||
)
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
content = json.loads(response.content)
|
||||
self.assertIn('user@extdomain.com', content["content"])
|
||||
self.assertNotIn('user@test.com', content["content"])
|
||||
forward = Alias.objects.get(address='user@test.com', internal=False)
|
||||
sadmin = User.objects.get(username='admin')
|
||||
self.assertIn("user@extdomain.com", content["content"])
|
||||
self.assertNotIn("user@test.com", content["content"])
|
||||
forward = Alias.objects.get(address="user@test.com", internal=False)
|
||||
sadmin = User.objects.get(username="admin")
|
||||
self.assertTrue(sadmin.can_access(forward))
|
||||
domadmin = User.objects.get(username='admin@test.com')
|
||||
domadmin = User.objects.get(username="admin@test.com")
|
||||
self.assertTrue(domadmin.can_access(forward))
|
||||
|
||||
# Now, empty forward
|
||||
self.ajax_post(url, {"dest": "", "keepcopies": False})
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
content = json.loads(response.content)
|
||||
self.assertNotIn("user@extdomain.com", content["content"])
|
||||
|
||||
@@ -31,7 +31,10 @@ def forward(request, tplname="admin/forward.html"):
|
||||
if form.cleaned_data["keepcopies"]:
|
||||
recipients.append(mb.full_address)
|
||||
al.set_recipients(recipients)
|
||||
al.post_create(request.user)
|
||||
if len(recipients) == 0:
|
||||
al.delete()
|
||||
else:
|
||||
al.post_create(request.user)
|
||||
return render_to_json_response(_("Forward updated"))
|
||||
|
||||
return render_to_json_response(
|
||||
|
||||
Reference in New Issue
Block a user