From 47f52e8ec79186595bbd9f247e090dcb2e5d7803 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Thu, 24 May 2018 18:11:25 +0200 Subject: [PATCH] Added button to refresh (regenerate) a DKIM key. see #1474 --- modoboa/admin/api.py | 1 - modoboa/admin/serializers.py | 4 ++-- .../admin/templates/admin/domain_detail.html | 23 +++++++++++++++++++ modoboa/admin/tests/test_api.py | 9 ++++++++ 4 files changed, 34 insertions(+), 3 deletions(-) diff --git a/modoboa/admin/api.py b/modoboa/admin/api.py index b50cef20c..b3295152f 100644 --- a/modoboa/admin/api.py +++ b/modoboa/admin/api.py @@ -31,7 +31,6 @@ class DomainViewSet(viewsets.ModelViewSet): permission_classes = [IsAuthenticated, DjangoModelPermissions, ] serializer_class = serializers.DomainSerializer - http_method_names = ["get", "post", "put", "delete"] def get_queryset(self): """Filter queryset based on current user.""" diff --git a/modoboa/admin/serializers.py b/modoboa/admin/serializers.py index d5e2ac88c..009b475d6 100644 --- a/modoboa/admin/serializers.py +++ b/modoboa/admin/serializers.py @@ -34,9 +34,9 @@ class DomainSerializer(serializers.ModelSerializer): fields = ( "pk", "name", "quota", "default_mailbox_quota", "enabled", "type", "enable_dkim", "dkim_key_selector", "dkim_key_length", - "dkim_public_key" + "dkim_public_key", "dkim_private_key_path" ) - read_only_fields = ("pk", "dkim_public_key", ) + read_only_fields = ("pk", ) def validate_name(self, value): """Check name constraints.""" diff --git a/modoboa/admin/templates/admin/domain_detail.html b/modoboa/admin/templates/admin/domain_detail.html index 96dafeb9c..fbebca6ab 100644 --- a/modoboa/admin/templates/admin/domain_detail.html +++ b/modoboa/admin/templates/admin/domain_detail.html @@ -106,6 +106,7 @@ + {% else %} {% trans "Not generated" %} {% endif %} @@ -148,3 +149,25 @@ {% endif %} {% endblock %} + +{% block extra_js %} + {{ block.super }} + +{% endblock %} diff --git a/modoboa/admin/tests/test_api.py b/modoboa/admin/tests/test_api.py index c32260ead..d57b657bb 100644 --- a/modoboa/admin/tests/test_api.py +++ b/modoboa/admin/tests/test_api.py @@ -130,6 +130,15 @@ class DomainAPITestCase(ModoAPITestCase): models.Mailbox.objects.filter( address="user", domain__name="test42.com").exists()) + def test_patch_domain(self): + """Check domain partial update.""" + domain = models.Domain.objects.get(name="test.com") + url = reverse("api:domain-detail", args=[domain.pk]) + response = self.client.put(url, {"name": "toto.test"}) + self.assertEqual(response.status_code, 200) + domain.refresh_from_db() + self.assertEqual(domain.name, "toto.test") + def test_delete_domain(self): """Try to delete a domain.""" domain = models.Domain.objects.get(name="test.com")