Merge pull request #1577 from ousaidu/master

Fix for issue #1475
This commit is contained in:
Antoine Nguyen
2018-10-05 09:24:23 +02:00
committed by GitHub
3 changed files with 29 additions and 1 deletions
+3 -1
View File
@@ -53,6 +53,7 @@ class DomainFormGeneral(forms.ModelForm, DynamicForm):
def __init__(self, user, *args, **kwargs):
self.oldname = None
if "instance" in kwargs:
self.old_dkim_key_length = kwargs["instance"].dkim_key_length
self.oldname = kwargs["instance"].name
super(DomainFormGeneral, self).__init__(*args, **kwargs)
params = dict(param_tools.get_global_parameters("admin"))
@@ -374,7 +375,8 @@ class DomainForm(TabForms):
"""
if "general" in self.instances:
self.instances["general"].oldname = self.instances["general"].name
instance = self.instances["general"]
instance.oldname = instance.name
return super(DomainForm, self).is_valid()
def save(self):
+4
View File
@@ -87,6 +87,7 @@ class Domain(AdminObject):
super(Domain, self).__init__(*args, **kwargs)
self.old_mail_homes = None
self.oldname = self.name
self.old_dkim_key_length = self.dkim_key_length
@property
def domainalias_count(self):
@@ -262,6 +263,9 @@ class Domain(AdminObject):
self.old_mail_homes = {
mb.id: mb.mail_home for mb in self.mailbox_set.all()
}
if self.old_dkim_key_length != self.dkim_key_length:
self.dkim_public_key = ""
self.dkim_private_key_path = ""
super(Domain, self).save(*args, **kwargs)
def delete(self, fromuser, keepdir=False):
+22
View File
@@ -432,3 +432,25 @@ class DKIMTestCase(ModoTestCase):
response = self.client.get(url)
self.assertContains(
response, escape(domain.bind_format_dkim_public_key))
def test_dkim_key_length_modification(self):
""" """
self.set_global_parameter("dkim_keys_storage_dir", self.workdir)
values = {
"name": "pouet.com", "quota": 1000, "default_mailbox_quota": 100,
"create_dom_admin": False, "type": "domain", "stepid": "step3",
"enable_dkim": True, "dkim_key_selector": "default"
}
self.ajax_post(reverse("admin:domain_add"), values)
call_command("modo", "manage_dkim_keys")
key_path = os.path.join(self.workdir, "{}.pem".format(values["name"]))
self.assertTrue(os.path.exists(key_path))
dom = Domain.objects.get(name="pouet.com")
values["dkim_key_length"] = 4096
self.ajax_post(reverse("admin:domain_change", args=[dom.pk]), values)
dom.refresh_from_db()
self.assertEqual(dom.dkim_private_key_path, "")
os.unlink(key_path)
call_command("modo", "manage_dkim_keys")
self.assertTrue(os.path.exists(key_path))