Fixed dkim option not updating, general dkim management improvement

This commit is contained in:
Spitap
2023-09-11 18:11:11 +02:00
parent c8331208cc
commit bd055adc75
7 changed files with 20 additions and 9 deletions
@@ -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"
+9
View File
@@ -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."""
+3 -1
View File
@@ -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, ]
+3
View File
@@ -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)
-1
View File
@@ -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