diff --git a/actions/admin/settings/160.nameserver.php b/actions/admin/settings/160.nameserver.php index 59173792..0defa95f 100644 --- a/actions/admin/settings/160.nameserver.php +++ b/actions/admin/settings/160.nameserver.php @@ -22,6 +22,15 @@ return array( 'nameserver' => array( 'title' => $lng['admin']['nameserversettings'], 'fields' => array( + 'nameserver_enable' => array( + 'label' => $lng['serversettings']['bindenable'], + 'settinggroup' => 'system', + 'varname' => 'bind_enable', + 'type' => 'bool', + 'default' => true, + 'save_method' => 'storeSettingField', + 'overview_option' => true + ), 'system_bindconf_directory' => array( 'label' => $lng['serversettings']['bindconf_directory'], 'settinggroup' => 'system', diff --git a/admin_customers.php b/admin_customers.php index fd643dc9..fefab671 100644 --- a/admin_customers.php +++ b/admin_customers.php @@ -338,7 +338,12 @@ if($page == 'customers' $db->query($admin_update_query); $log->logAction(ADM_ACTION, LOG_INFO, "deleted user '" . $result['loginname'] . "'"); inserttask('1'); - inserttask('4'); + + # Using nameserver, insert a task which rebuilds the server config + if ($settings['system']['bind_enable']) + { + inserttask('4'); + } if(isset($_POST['delete_userfiles']) && (int)$_POST['delete_userfiles'] == 1) diff --git a/admin_domains.php b/admin_domains.php index 7cce8694..c1a48801 100644 --- a/admin_domains.php +++ b/admin_domains.php @@ -194,7 +194,12 @@ if($page == 'domains' $log->logAction(ADM_ACTION, LOG_INFO, "deleted domain/subdomains (#" . $result['id'] . ")"); updateCounters(); inserttask('1'); - inserttask('4'); + + # Using nameserver, insert a task which rebuilds the server config + if ($settings['system']['bind_enable']) + { + inserttask('4'); + } redirectTo($filename, Array('page' => $page, 's' => $s)); } elseif ($alias_check['count'] > 0) { @@ -570,7 +575,12 @@ if($page == 'domains' $db->query("UPDATE `" . TABLE_PANEL_ADMINS . "` SET `domains_used` = `domains_used` + 1 WHERE `adminid` = '" . (int)$adminid . "'"); $log->logAction(ADM_ACTION, LOG_INFO, "added domain '" . $domain . "'"); inserttask('1'); - inserttask('4'); + + # Using nameserver, insert a task which rebuilds the server config + if ($settings['system']['bind_enable']) + { + inserttask('4'); + } redirectTo($filename, Array('page' => $page, 's' => $s)); } } diff --git a/admin_ipsandports.php b/admin_ipsandports.php index 0e243d3a..be6a3145 100644 --- a/admin_ipsandports.php +++ b/admin_ipsandports.php @@ -104,7 +104,12 @@ if($page == 'ipsandports' $db->query("DELETE FROM `" . TABLE_PANEL_IPSANDPORTS . "` WHERE `id`='" . (int)$id . "'"); $log->logAction(ADM_ACTION, LOG_WARNING, "deleted IP/port '" . $result['ip'] . ":" . $result['port'] . "'"); inserttask('1'); - inserttask('4'); + + # Using nameserver, insert a task which rebuilds the server config + if ($settings['system']['bind_enable']) + { + inserttask('4'); + } redirectTo($filename, Array('page' => $page, 's' => $s)); } else @@ -245,7 +250,12 @@ if($page == 'ipsandports' $log->logAction(ADM_ACTION, LOG_WARNING, "added IP/port '" . $ip . ":" . $port . "'"); inserttask('1'); - inserttask('4'); + + # Using nameserver, insert a task which rebuilds the server config + if ($settings['system']['bind_enable']) + { + inserttask('4'); + } redirectTo($filename, Array('page' => $page, 's' => $s)); } } @@ -391,7 +401,12 @@ if($page == 'ipsandports' $log->logAction(ADM_ACTION, LOG_WARNING, "changed IP/port from '" . $result['ip'] . ":" . $result['port'] . "' to '" . $ip . ":" . $port . "'"); inserttask('1'); - inserttask('4'); + + # Using nameserver, insert a task which rebuilds the server config + if ($settings['system']['bind_enable']) + { + inserttask('4'); + } redirectTo($filename, Array('page' => $page, 's' => $s)); } } diff --git a/admin_settings.php b/admin_settings.php index fbcf7a72..c21d3212 100644 --- a/admin_settings.php +++ b/admin_settings.php @@ -82,9 +82,14 @@ if(($page == 'settings' || $page == 'overview') ) { $log->logAction(ADM_ACTION, LOG_INFO, "rebuild configfiles due to changed setting"); inserttask('1'); - inserttask('4'); inserttask('5'); inserttask('9'); + + # Using nameserver, insert a task which rebuilds the server config + if ($settings['system']['bind_enable']) + { + inserttask('4'); + } standard_success('settingssaved', '', array('filename' => $filename, 'action' => $action, 'page' => $page)); } } @@ -123,10 +128,15 @@ elseif($page == 'rebuildconfigs' { $log->logAction(ADM_ACTION, LOG_INFO, "rebuild configfiles"); inserttask('1'); - inserttask('4'); inserttask('5'); inserttask('9'); inserttask('10'); + + # Using nameserver, insert a task which rebuilds the server config + if ($settings['system']['bind_enable']) + { + inserttask('4'); + } standard_success('rebuildingconfigs', '', array('filename' => 'admin_index.php')); } else diff --git a/customer_domains.php b/customer_domains.php index cb119921..5724547a 100644 --- a/customer_domains.php +++ b/customer_domains.php @@ -196,7 +196,12 @@ elseif($page == 'domains') $result = $db->query("DELETE FROM `" . TABLE_PANEL_DOMAINS . "` WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$id . "'"); $result = $db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `subdomains_used`=`subdomains_used`-1 WHERE `customerid`='" . (int)$userinfo['customerid'] . "'"); inserttask('1'); - inserttask('4'); + + # Using nameserver, insert a task which rebuilds the server config + if ($settings['system']['bind_enable']) + { + inserttask('4'); + } redirectTo($filename, Array('page' => $page, 's' => $s)); } else @@ -346,7 +351,12 @@ elseif($page == 'domains') $result = $db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `subdomains_used`=`subdomains_used`+1 WHERE `customerid`='" . (int)$userinfo['customerid'] . "'"); $log->logAction(USR_ACTION, LOG_INFO, "added subdomain '" . $completedomain . "'"); inserttask('1'); - inserttask('4'); + + # Using nameserver, insert a task which rebuilds the server config + if ($settings['system']['bind_enable']) + { + inserttask('4'); + } redirectTo($filename, Array('page' => $page, 's' => $s)); } } @@ -521,7 +531,12 @@ elseif($page == 'domains') $log->logAction(USR_ACTION, LOG_INFO, "edited domain '" . $idna_convert->decode($result['domain']) . "'"); $result = $db->query("UPDATE `" . TABLE_PANEL_DOMAINS . "` SET `documentroot`='" . $db->escape($path) . "', `isemaildomain`='" . (int)$isemaildomain . "', `iswildcarddomain`='" . (int)$iswildcarddomain . "', `aliasdomain`=" . (($aliasdomain != 0 && $alias_check == 0) ? '\'' . $db->escape($aliasdomain) . '\'' : 'NULL') . ",`openbasedir_path`='" . $db->escape($openbasedir_path) . "', `ssl_redirect`='" . $ssl_redirect . "' WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$id . "'"); inserttask('1'); - inserttask('4'); + + # Using nameserver, insert a task which rebuilds the server config + if ($settings['system']['bind_enable']) + { + inserttask('4'); + } } redirectTo($filename, Array('page' => $page, 's' => $s)); diff --git a/install/froxlor.sql b/install/froxlor.sql index aac2f33e..35ed461e 100644 --- a/install/froxlor.sql +++ b/install/froxlor.sql @@ -466,6 +466,7 @@ INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('syste INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'vmail_uid', '2000'); INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'vmail_gid', '2000'); INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'vmail_homedir', '/var/customers/mail/'); +INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'bind_enable', '1'); INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'bindconf_directory', '/etc/bind/'); INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'bindreload_command', '/etc/init.d/bind9 reload'); INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'version', '0.9.25'); diff --git a/lng/english.lng.php b/lng/english.lng.php index 2797798f..77985e29 100644 --- a/lng/english.lng.php +++ b/lng/english.lng.php @@ -351,6 +351,8 @@ $lng['serversettings']['hostname']['title'] = 'Hostname'; $lng['serversettings']['hostname']['description'] = 'What\'s the Hostname of this server?'; $lng['serversettings']['apachereload_command']['title'] = 'Webserver reload command'; $lng['serversettings']['apachereload_command']['description'] = 'What\'s the webserver command to reload configfiles?'; +$lng['serversettings']['bindenable']['title'] = 'Enable Nameserver'; +$lng['serversettings']['bindenable']['description'] = 'Here the Nameserver can be enabled and disabled globaly.'; $lng['serversettings']['bindconf_directory']['title'] = 'Bind config directory'; $lng['serversettings']['bindconf_directory']['description'] = 'Where should bind configfiles be saved?'; $lng['serversettings']['bindreload_command']['title'] = 'Bind reload command'; diff --git a/lng/german.lng.php b/lng/german.lng.php index 0a1c7501..99274206 100644 --- a/lng/german.lng.php +++ b/lng/german.lng.php @@ -351,6 +351,8 @@ $lng['serversettings']['hostname']['title'] = 'Hostname'; $lng['serversettings']['hostname']['description'] = 'Welchen Hostnamen hat der Server?'; $lng['serversettings']['apachereload_command']['title'] = 'Webserver-Reload-Command'; $lng['serversettings']['apachereload_command']['description'] = 'Wie heißt das Skript zum Neuladen der Webserver-Konfigurationsdateien?'; +$lng['serversettings']['bindenable']['title'] = 'Nameserver aktivieren'; +$lng['serversettings']['bindenable']['description'] = 'Hier können Sie den Nameserver global aktivieren bzw. deaktivieren.'; $lng['serversettings']['bindconf_directory']['title'] = 'Bind-Config-Directory'; $lng['serversettings']['bindconf_directory']['description'] = 'Wo liegen die Bind-Konfigurationsdateien?'; $lng['serversettings']['bindreload_command']['title'] = 'Bind-Reload-Command'; diff --git a/scripts/jobs/cron_tasks.php b/scripts/jobs/cron_tasks.php index 74504559..8a53e5c9 100644 --- a/scripts/jobs/cron_tasks.php +++ b/scripts/jobs/cron_tasks.php @@ -245,6 +245,12 @@ while($row = $db->fetch_array($result_tasks)) */ elseif ($row['type'] == '4') { + //dont do anything when module is disabled + if((int)$settings['system']['bind_enable'] == 0) + { + return; + } + if(!isset($nameserver)) { $nameserver = new bind($db, $cronlog, $debugHandler, $settings);