diff --git a/admin_domains.php b/admin_domains.php
index 7ecc3d5d..51de4672 100644
--- a/admin_domains.php
+++ b/admin_domains.php
@@ -2061,7 +2061,7 @@ elseif (Settings::Get('system.validate_domain') && ! validateDomain($domain)) {
eval("echo \"" . getTemplate("domains/domains_import") . "\";");
}
}
-} elseif ($page == 'domaindnseditor') {
+} elseif ($page == 'domaindnseditor' && Settings::Get('system.dnsenabled') == '1') {
require_once __DIR__.'/dns_editor.php';
}
diff --git a/customer_domains.php b/customer_domains.php
index de18a20c..643866e6 100644
--- a/customer_domains.php
+++ b/customer_domains.php
@@ -904,4 +904,7 @@ if ($page == 'overview') {
eval("echo \"" . getTemplate("domains/domain_ssleditor") . "\";");
}
+} elseif ($page == 'domaindnseditor' && Settings::Get('system.dnsenabled') == '1') {
+
+ require_once __DIR__.'/dns_editor.php';
}
diff --git a/install/froxlor.sql b/install/froxlor.sql
index 8758e141..b6462902 100644
--- a/install/froxlor.sql
+++ b/install/froxlor.sql
@@ -526,6 +526,7 @@ INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES
('system', 'letsencryptreuseold', 0),
('system', 'leenabled', '0'),
('system', 'backupenabled', '0'),
+ ('system', 'dnsenabled', '0'),
('panel', 'decimal_places', '4'),
('panel', 'adminmail', 'admin@SERVERNAME'),
('panel', 'phpmyadmin_url', ''),
diff --git a/install/updates/preconfig/0.9/preconfig_0.9.inc.php b/install/updates/preconfig/0.9/preconfig_0.9.inc.php
index 0c9d6559..5ebd6bf5 100644
--- a/install/updates/preconfig/0.9/preconfig_0.9.inc.php
+++ b/install/updates/preconfig/0.9/preconfig_0.9.inc.php
@@ -716,4 +716,12 @@ function parseAndOutputPreconfig(&$has_preconfig, &$return, $current_version, $c
$question.= makeyesno('enable_backup', '1', '0', '0').'
';
eval("\$return.=\"" . getTemplate("update/preconfigitem") . "\";");
}
+
+ if (versionInUpdate($current_db_version, '201605090')) {
+ $has_preconfig = true;
+ $description = 'You can chose whether you want to enable or disable our DNS editor
';
+ $question = 'Do you want to enable the DNS editor? (default: no): ';
+ $question.= makeyesno('enable_dns', '1', '0', '0').'
';
+ eval("\$return.=\"" . getTemplate("update/preconfigitem") . "\";");
+ }
}
diff --git a/lng/english.lng.php b/lng/english.lng.php
index a42edaf9..98487720 100644
--- a/lng/english.lng.php
+++ b/lng/english.lng.php
@@ -2007,3 +2007,5 @@ $lng['error']['dns_srv_noalias'] = 'The SRV-target value cannot be an CNAME entr
$lng['error']['dns_duplicate_entry'] = 'Record already exists';
$lng['success']['dns_record_added'] = 'Record added successfully';
$lng['success']['dns_record_deleted'] = 'Record deleted successfully';
+$lng['dnseditor']['edit'] = 'edit DNS';
+$lng['dnseditor']['records'] = 'records';
diff --git a/lng/german.lng.php b/lng/german.lng.php
index 671ce6c1..0584a5b2 100644
--- a/lng/german.lng.php
+++ b/lng/german.lng.php
@@ -1642,3 +1642,23 @@ $lng['serversettings']['backupenabled']['description'] = "Wenn dies aktiviert is
$lng['extras']['path_protection_label'] = 'Wichtig';
$lng['extras']['path_protection_info'] = 'Wir raten dringend dazu den angegebenen Pfad zu schützen, siehe "Extras" -> "Verzeichnisschutz"';
$lng['tasks']['backup_customerfiles'] = 'Datensicherung für Kunde %loginname%';
+
+$lng['error']['dns_domain_nodns'] = 'DNS ist für diese Domain nicht aktiviert';
+$lng['error']['dns_content_empty'] = 'Keinen Inhalt angegeben';
+$lng['error']['dns_arec_noipv4'] = 'Kein gültige IP Adresse für A-Eintrag angegeben';
+$lng['error']['dns_aaaarec_noipv6'] = 'Kein gültige IP Adresse für AAAA-Eintrag angegeben';
+$lng['error']['dns_mx_prioempty'] = 'Ungültige MX Priorität angegeben';
+$lng['error']['dns_mx_needdom'] = 'Der Wert des MX Eintrags muss ein gültiger Domainname sein';
+$lng['error']['dns_mx_noalias'] = 'Der MX Eintrag darf kein CNAME Eintrag sein.';
+$lng['error']['dns_cname_invaliddom'] = 'Ungültiger Domain-Name für CNAME Eintrag';
+$lng['error']['dns_cname_nomorerr'] = 'Es existiert bereits ein Eintrag mit dem gleichen Namen. Dieser Eintrag kann daher nicht für CNAME genutzt werden.';
+$lng['error']['dns_ns_invaliddom'] = 'Ungültiger Domain-Name für NS Eintrag';
+$lng['error']['dns_srv_prioempty'] = 'Ungültige SRV Priorität angegeben';
+$lng['error']['dns_srv_invalidcontent'] = 'Ungültiger Wert des SRV Eintrags, dieser muss aus den Feldern: weight, port und target, bestehen. Bsp.: 5 5060 sipserver.example.com.';
+$lng['error']['dns_srv_needdom'] = 'Der Wert des SRV Eintrags muss ein gültiger Domainname sein';
+$lng['error']['dns_srv_noalias'] = 'Der SRV Eintrag darf kein CNAME Eintrag sein..';
+$lng['error']['dns_duplicate_entry'] = 'Eintrag existiert bereits';
+$lng['success']['dns_record_added'] = 'Eintrag erfolgreich hinzugefügt';
+$lng['success']['dns_record_deleted'] = 'Eintrag erfolgreich entfernt';
+$lng['dnseditor']['edit'] = 'DNS editieren';
+$lng['dnseditor']['records'] = 'Einträge';
diff --git a/scripts/jobs/cron_tasks.php b/scripts/jobs/cron_tasks.php
index 99573e9b..1bf460be 100644
--- a/scripts/jobs/cron_tasks.php
+++ b/scripts/jobs/cron_tasks.php
@@ -181,7 +181,11 @@ while ($row = $result_tasks_stmt->fetch(PDO::FETCH_ASSOC)) {
*/
elseif ($row['type'] == '4' && (int)Settings::Get('system.bind_enable') != 0) {
- $bindclass ="bind2";
+ $bindclass ="bind";
+
+ if (Settings::Get('system.dnsenabled') == '1') {
+ $bindclass = "bind2";
+ }
if (!isset($nameserver)) {
$nameserver = new $bindclass($cronlog);
diff --git a/templates/Sparkle/admin/domains/domains_edit.tpl b/templates/Sparkle/admin/domains/domains_edit.tpl
index 275b0077..75f71bfd 100644
--- a/templates/Sparkle/admin/domains/domains_edit.tpl
+++ b/templates/Sparkle/admin/domains/domains_edit.tpl
@@ -4,8 +4,8 @@ $header