mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
Fixed dkim option not updating, general dkim management improvement
This commit is contained in:
@@ -122,7 +122,9 @@
|
||||
</v-chip>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row v-if="value.enable_dkim">
|
||||
</template>
|
||||
<template v-if="value.enable_dkim">
|
||||
<v-row>
|
||||
<v-col cols="3"><translate>DKIM key</translate></v-col>
|
||||
<v-col cols="9">
|
||||
<div v-if="value.dkim_private_key_path && value.dkim_public_key">
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
<v-switch
|
||||
:label="'Enable DNS checks' | translate"
|
||||
v-model="form.enable_dns_checks"
|
||||
@input="update"
|
||||
@change="update"
|
||||
/>
|
||||
<v-switch
|
||||
:label="'Enable DKIM signing' | translate"
|
||||
v-model="form.enable_dkim"
|
||||
@input="update"
|
||||
@change="update"
|
||||
/>
|
||||
<v-text-field
|
||||
:label="'DKIM key selector' | translate"
|
||||
|
||||
@@ -109,6 +109,15 @@ class DomainSerializer(serializers.ModelSerializer):
|
||||
domain.save(creator=creator)
|
||||
return domain
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
"""Update domain and create/update transport."""
|
||||
super().update(instance, validated_data)
|
||||
_enable_dkim = validated_data.get("enable_dkim")
|
||||
if _enable_dkim is False and instance.dkim_private_key_path != "":
|
||||
instance.dkim_private_key_path = ""
|
||||
instance.save()
|
||||
return instance
|
||||
|
||||
|
||||
class DomainAliasSerializer(serializers.ModelSerializer):
|
||||
"""Base DomainAlias serializer."""
|
||||
|
||||
@@ -36,7 +36,9 @@ from . import serializers
|
||||
summary="Create a new domain"
|
||||
)
|
||||
)
|
||||
class DomainViewSet(GetThrottleViewsetMixin, lib_viewsets.RevisionModelMixin, viewsets.ModelViewSet):
|
||||
class DomainViewSet(GetThrottleViewsetMixin,
|
||||
lib_viewsets.RevisionModelMixin,
|
||||
viewsets.ModelViewSet):
|
||||
"""Domain viewset."""
|
||||
|
||||
permission_classes = [IsAuthenticated, DjangoModelPermissions, ]
|
||||
|
||||
@@ -220,6 +220,9 @@ class DomainFormGeneral(forms.ModelForm, DynamicForm):
|
||||
options = {"creator": user} if domalias_post_create else {}
|
||||
DomainAlias(name=alias, target=d, enabled=d.enabled).save(
|
||||
**options)
|
||||
if self.cleaned_data.get("enable_dkim") is False and d.dkim_private_key_path != "":
|
||||
d.dkim_private_key_path = ""
|
||||
d.save()
|
||||
return d
|
||||
|
||||
|
||||
|
||||
@@ -74,13 +74,9 @@ class ManageDKIMKeys(BaseCommand):
|
||||
dkim_private_key_path="")
|
||||
if domain.exists():
|
||||
self.create_new_dkim_key(domain[0])
|
||||
signals.new_dkim_keys.send(sender=self.__class__,
|
||||
domains=domain)
|
||||
return
|
||||
|
||||
qset = models.Domain.objects.filter(
|
||||
enable_dkim=True, dkim_private_key_path="")
|
||||
for domain in qset:
|
||||
self.create_new_dkim_key(domain)
|
||||
if qset.exists():
|
||||
signals.new_dkim_keys.send(sender=self.__class__, domains=qset)
|
||||
|
||||
@@ -19,5 +19,4 @@ get_domain_form_instances = django.dispatch.Signal() # Provides user, domain
|
||||
# get_domain_tags = django.dispatch.Signal(providing_args=["domain"])
|
||||
import_object = django.dispatch.Signal() # Provides objtype
|
||||
use_external_recipients = django.dispatch.Signal() # Provides recipients
|
||||
new_dkim_keys = django.dispatch.Signal() # Provides domain
|
||||
extra_account_identities_actions = django.dispatch.Signal() # Provides account
|
||||
|
||||
Reference in New Issue
Block a user