Просмотр исходного кода

Fix issue with existing domains not updated (#2985)

* Consistent new checkboxes

* Fix inputs

* Fix issue with values not saving propperly on existing domains

* Remove label

* Set DNSSEC disable when value issue missing

* Update changelog

Co-authored-by: Alec Rust <me@alecrust.com>
Jaap Marcus 3 лет назад
Родитель
Сommit
53b797936d

+ 1 - 0
CHANGELOG.md

@@ -9,6 +9,7 @@ All notable changes to this project will be documented in this file.
 
 ### Features
 
+- Add support for DNSSEC support for DNS domains (#2938)
 - Add support for rate limit exim in packages (#2920)
 - Add support for ssh keys for SFTP (#2906)
 

+ 4 - 0
bin/v-change-dns-domain-dnssec

@@ -21,6 +21,8 @@ source /etc/hestiacp/hestia.conf
 source $HESTIA/func/main.sh
 # shellcheck source=/usr/local/hestia/func/rebuild.sh
 source $HESTIA/func/rebuild.sh
+# shellcheck source=/usr/local/hestia/func/syshealth.sh
+source $HESTIA/func/syshealth.sh
 # shellcheck source=/usr/local/hestia/func/domain.sh
 source $HESTIA/func/domain.sh
 # load config file
@@ -57,6 +59,8 @@ if [ -f "$HESTIA/data/queue/dns-cluster.pipe" ]; then
     bash $HESTIA/data/queue/dns-cluster.pipe
 fi
 
+syshealth_repair_dns_config
+
 # Changing exp
 update_object_value 'dns' 'DOMAIN' "$domain" '$DNSSEC' "$status"
 

+ 14 - 1
func/syshealth.sh

@@ -64,7 +64,7 @@ function syshealth_update_dns_config_format() {
     # DNS DOMAINS
     # Create array of known keys in configuration file
     system="dns"
-    known_keys="DOMAIN IP TPL TTL EXP SOA SERIAL SRC RECORDS DNSSEC KEY SLAVE SUSPENDED TIME DATE"
+    known_keys="DOMAIN IP TPL TTL EXP SOA SERIAL SRC RECORDS DNSSEC KEY SLAVE MASTER SUSPENDED TIME DATE"
     write_kv_config_file
     unset system
     unset known_keys
@@ -169,6 +169,19 @@ function syshealth_repair_mail_config() {
     done
 }
 
+function syshealth_repair_dns_config() {
+    system="dns"
+    sanitize_config_file "$system"
+    get_domain_values 'dns'
+    prev="DOMAIN"
+    for key in $known_keys; do
+        if [ -z "${!key}" ]; then
+            add_object_key 'dns' 'DOMAIN' "$domain" "$key" "$prev"
+        fi
+        prev=$key
+    done
+}
+
 function syshealth_repair_mail_account_config() {
     system="mail_accounts"
     sanitize_config_file "$system"

+ 4 - 2
web/templates/pages/add_dns.html

@@ -114,8 +114,10 @@
 										<tr>
 											<td class="u-pt6">
 												<div class="form-check">
-													<input type="checkbox" class="form-check-input" name="v_dnssec" id="v_dnssec" value="yes" <?php if($v_dnssec != 'no'){ echo ' checked'; } ?>>
-													<label for="v_dnssec" class="form-label"> <?=_('Enable DNSEC');?></label>
+													<input class="form-check-input" type="checkbox" name="v_dnssec" id="v_dnssec" value="yes" <?php if($v_dnssec === 'yes'){ echo ' checked'; } ?>>
+													<label for="v_dnssec">
+														<?=_('Enable DNSEC');?>
+													</label>
 												</div>
 											</td>
 										</tr>

+ 4 - 2
web/templates/pages/edit_dns.html

@@ -89,8 +89,10 @@
 						<tr>
 							<td class="u-pt6">
 								<div class="form-check">
-									<input type="checkbox" class="form-check-input" name="v_dnssec" id="v_dnssec" value="yes" <?php if($v_dnssec != 'no'){ echo ' checked'; } ?>>
-									<label for="v_dnssec" class="form-label"><?=_('Enable DNSEC');?></label>
+									<input class="form-check-input" type="checkbox" name="v_dnssec" id="v_dnssec" value="yes" <?php if($v_dnssec === 'yes'){ echo ' checked'; } ?>>
+									<label for="v_dnssec">
+										<?=_('Enable DNSEC');?>
+									</label>
 								</div>
 							</td>
 						</tr>

+ 12 - 12
web/templates/pages/list_dns_public.html

@@ -61,34 +61,34 @@
 <div class="l-separator"></div>
 
 <div class="l-center units">
-		
+
 <div class="l-unit animated fadeIn">
 	<div class="l-unit__col l-unit__col--right">
-		<div class="clearfix l-unit__stat-col--left text-center u-pt18"><b><?=_('DNSKEY record');?></b></div>
-		<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="vst-input" value="<?php echo $data[$domain]['RECORD'];?>"></b></div>
+		<div class="clearfix l-unit__stat-col--left text-center u-pt10"><b><?=_('DNSKEY record');?></b></div>
+		<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="form-control" value="<?php echo $data[$domain]['RECORD'];?>"></b></div>
 	</div>
 </div>
 <div class="l-unit animated fadeIn">
 	<div class="l-unit__col l-unit__col--right">
-		<div class="clearfix l-unit__stat-col--left text-center u-pt18"><b><?=_('DS record');?></b></div>
-		<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="vst-input" value="<?php echo $data[$domain]['DS'];?>"></b></div>
+		<div class="clearfix l-unit__stat-col--left text-center u-pt10"><b><?=_('DS record');?></b></div>
+		<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="form-control" value="<?php echo $data[$domain]['DS'];?>"></b></div>
 	</div>
 </div>
 <div class="l-unit animated fadeIn">
 	<div class="l-unit__col l-unit__col--right">
-		<div class="clearfix l-unit__stat-col--left text-center u-pt18"><b><?=_('Public key');?></b></div>
-		<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="vst-input" value="<?php echo $data[$domain]['KEY'];?>"></b></div>
+		<div class="clearfix l-unit__stat-col--left text-center u-pt10"><b><?=_('Public key');?></b></div>
+		<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="form-control" value="<?php echo $data[$domain]['KEY'];?>"></b></div>
 	</div>
 </div>
 <div class="l-unit animated fadeIn">
 	<div class="l-unit__col l-unit__col--right">
-		<div class="clearfix l-unit__stat-col--left text-center u-pt18"><b><?=_('Key Tag / Flag');?></b></div>
-		<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="vst-input" value="<?php echo $flag;?>"></b></div>
+		<div class="clearfix l-unit__stat-col--left text-center u-pt10"><b><?=_('Key Tag / Flag');?></b></div>
+		<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="form-control" value="<?php echo $flag;?>"></b></div>
 	</div>
 </div>
 <div class="l-unit animated fadeIn">
 	<div class="l-unit__col l-unit__col--right">
-		<div class="clearfix l-unit__stat-col--left text-center u-pt18"><b><?=_('Algorithm');?></b></div>
-		<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="vst-input" value="<?php echo $algorithm;?>"></b></div>
+		<div class="clearfix l-unit__stat-col--left text-center u-pt10"><b><?=_('Algorithm');?></b></div>
+		<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="form-control" value="<?php echo $algorithm;?>"></b></div>
 	</div>
-</div>
+</div>