mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
Merge pull request #1495 from modoboa/feature/refresh_dkim_key
Added button to refresh (regenerate) a DKIM key.
This commit is contained in:
@@ -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."""
|
||||
|
||||
@@ -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."""
|
||||
|
||||
@@ -106,6 +106,7 @@
|
||||
<button type="button" class="btn btn-primary btn-xs" data-toggle="modal" data-target="#domain_dkim_key">
|
||||
{% trans "Show key" %}
|
||||
</button>
|
||||
<a id="refresh_dkim_key" class="btn btn-default btn-xs" href="#" title="{% trans 'Generate new key' %}"><span class="fa fa-refresh"></span></a>
|
||||
{% else %}
|
||||
{% trans "Not generated" %}
|
||||
{% endif %}
|
||||
@@ -148,3 +149,25 @@
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block extra_js %}
|
||||
{{ block.super }}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
$('#refresh_dkim_key').click(function (evt) {
|
||||
evt.preventDefault();
|
||||
var $this = $(this);
|
||||
$.ajax({
|
||||
url: '/api/v1/domains/{{ domain.pk }}/',
|
||||
method: 'PATCH',
|
||||
data: {
|
||||
dkim_public_key: '',
|
||||
dkim_private_key_path: ''
|
||||
}
|
||||
}).done(function (response) {
|
||||
window.location.reload();
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user