From 3c614ea00f5b9fa9752b4111f4e8a77b5a7e25ef Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Thu, 22 Jun 2017 16:50:03 +0200 Subject: [PATCH] Fixed forward creation from import. see #1144 --- modoboa/admin/models/alias.py | 2 +- modoboa/admin/tests/test_import_.py | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/modoboa/admin/models/alias.py b/modoboa/admin/models/alias.py index b137dfa08..59b796725 100644 --- a/modoboa/admin/models/alias.py +++ b/modoboa/admin/models/alias.py @@ -186,7 +186,7 @@ class Alias(AdminObject): sender="import", context=user, klass=Alias) core_signals.can_create_object.send( sender="import", context=domain, object_type="mailbox_aliases") - if Alias.objects.filter(address=address).exists(): + if Alias.objects.filter(address=address, internal=False).exists(): raise Conflict self.address = address self.domain = domain diff --git a/modoboa/admin/tests/test_import_.py b/modoboa/admin/tests/test_import_.py index dfb612bd3..8468fe593 100644 --- a/modoboa/admin/tests/test_import_.py +++ b/modoboa/admin/tests/test_import_.py @@ -83,7 +83,8 @@ domainalias;test.alias;test.com;True "sourcefile": f } ) - self.assertIn('Object already exists: domainalias', resp.content.decode()) + self.assertIn( + "Object already exists: domainalias", resp.content.decode()) def test_identities_import(self): response = self.client.get(reverse("admin:identity_import")) @@ -274,3 +275,16 @@ alias;user.alias@test.com;True;user@test.com;;;;;;;;;;;;;;;; ) alias = Alias.objects.get(address="user.alias@test.com") self.assertEqual(alias.type, "alias") + + def test_import_account_alias_conflict(self): + """Specific test for #1144.""" + f = ContentFile(b""" +alias;user@test.com;True;admin@test.com +""", name="identities.csv") + self.client.post( + reverse("admin:identity_import"), + {"sourcefile": f, "crypt_password": True} + ) + self.assertTrue( + Alias.objects.filter( + address="user@test.com", internal=False).exists())