Prevent the creation of a domain alias using the same name as a domain.

fixes #498
This commit is contained in:
Antoine Nguyen
2013-11-15 18:47:42 +01:00
parent f16368a0da
commit 63d37550d9
2 changed files with 18 additions and 1 deletions
@@ -1,7 +1,7 @@
import reversion
from django.db import models
from django.utils.translation import ugettext as _, ugettext_lazy
from modoboa.lib.exceptions import BadRequest
from modoboa.lib.exceptions import BadRequest, Conflict
from .base import AdminObject
from .domain import Domain
@@ -38,6 +38,12 @@ class DomainAlias(AdminObject):
if len(row) < 4:
raise BadRequest(_("Invalid line"))
self.name = row[1].strip()
try:
Domain.objects.get(name=self.name)
except Domain.DoesNotExist:
pass
else:
raise Conflict(_("A domain %s already exists" % self.name))
domname = row[2].strip()
try:
self.target = Domain.objects.get(name=domname)
+11
View File
@@ -40,6 +40,17 @@ domainalias; domalias1.com; domain1.com; True
self.assertFalse(dom.enabled)
self.assertTrue(admin.is_owner(dom))
def test_import_domains_with_conflict(self):
f = ContentFile(b"""domain;test.alias;10;True
domainalias;test.alias;test.com;True
""", name="domains.csv")
resp = self.clt.post(
reverse("modoboa.extensions.admin.views.import.import_domains"), {
"sourcefile": f
}
)
self.assertIn('A domain test.alias already exists', resp.content)
def test_identities_import(self):
f = ContentFile(b"""
account; user1@test.com; toto; User; One; True; SimpleUsers; user1@test.com