From ba196265aaad30c1cb46ec5cce3067f4857b506c Mon Sep 17 00:00:00 2001 From: ftimme <ft@falkotimme.com> Date: Tue, 11 Jun 2013 13:07:59 -0400 Subject: [PATCH] - Fixed FS#2888 - Clients cannot add secondary DNS. --- interface/web/client/reseller_edit.php | 2 interface/web/client/templates/client_edit_limits.htm | 6 +++ interface/web/client/form/client.tform.php | 35 +++++++++++------ interface/web/dns/dns_slave_edit.php | 4 +- interface/web/client/lib/lang/de_reseller.lng | 5 +- interface/web/client/lib/lang/en_reseller.lng | 1 interface/web/client/lib/lang/de_client.lng | 5 +- interface/web/client/lib/lang/en_client.lng | 1 interface/web/client/client_edit.php | 2 install/sql/ispconfig3.sql | 1 interface/web/client/templates/reseller_edit_limits.htm | 6 +++ install/sql/incremental/upd_0052.sql | 1 interface/web/client/form/reseller.tform.php | 11 +++++ 13 files changed, 60 insertions(+), 20 deletions(-) diff --git a/install/sql/incremental/upd_0052.sql b/install/sql/incremental/upd_0052.sql new file mode 100644 index 0000000..7ad62b2 --- /dev/null +++ b/install/sql/incremental/upd_0052.sql @@ -0,0 +1 @@ +ALTER TABLE `client` ADD `default_slave_dnsserver` INT( 11 ) UNSIGNED NOT NULL DEFAULT '1' AFTER `limit_dns_zone`; \ No newline at end of file diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 524dc60..2150aa1 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -204,6 +204,7 @@ `limit_aps` int(11) NOT NULL DEFAULT '-1', `default_dnsserver` int(11) unsigned NOT NULL DEFAULT '1', `limit_dns_zone` int(11) NOT NULL DEFAULT '-1', + `default_slave_dnsserver` int(11) unsigned NOT NULL DEFAULT '1', `limit_dns_slave_zone` int(11) NOT NULL DEFAULT '-1', `limit_dns_record` int(11) NOT NULL DEFAULT '-1', `default_dbserver` int(11) NOT NULL DEFAULT '1', diff --git a/interface/web/client/client_edit.php b/interface/web/client/client_edit.php index 6f7cf53..2b72d81 100644 --- a/interface/web/client/client_edit.php +++ b/interface/web/client/client_edit.php @@ -177,7 +177,7 @@ $tmp = $app->db->queryOneRecord('SELECT server_id FROM server WHERE db_server = 1 AND mirror_server_id = 0 LIMIT 0,1'); $default_dbserver = $app->functions->intval($tmp['server_id']); - $sql = "UPDATE client SET default_mailserver = $default_mailserver, default_webserver = $default_webserver, default_dnsserver = $default_dnsserver, default_dbserver = $default_dbserver WHERE client_id = ".$this->id; + $sql = "UPDATE client SET default_mailserver = $default_mailserver, default_webserver = $default_webserver, default_dnsserver = $default_dnsserver, default_slave_dnsserver = $default_dnsserver, default_dbserver = $default_dbserver WHERE client_id = ".$this->id; $app->db->query($sql); diff --git a/interface/web/client/form/client.tform.php b/interface/web/client/form/client.tform.php index 7d7bf45..b29a831 100644 --- a/interface/web/client/form/client.tform.php +++ b/interface/web/client/form/client.tform.php @@ -899,20 +899,31 @@ 'rows' => '', 'cols' => '' ), - 'limit_dns_slave_zone' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'default_slave_dnsserver' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '1', + 'datasource' => array ( 'type' => 'CUSTOM', + 'class'=> 'custom_datasource', + 'function'=> 'client_servers' + ), + 'value' => '', + 'name' => 'default_slave_dnsserver' + ), + 'limit_dns_slave_zone' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', 'errmsg'=> 'limit_dns_slave_zone_error_notint'), ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), 'limit_dns_record' => array ( 'datatype' => 'INTEGER', 'formtype' => 'TEXT', diff --git a/interface/web/client/form/reseller.tform.php b/interface/web/client/form/reseller.tform.php index df240e5..a6c4bd9 100644 --- a/interface/web/client/form/reseller.tform.php +++ b/interface/web/client/form/reseller.tform.php @@ -894,6 +894,17 @@ 'rows' => '', 'cols' => '' ), + 'default_slave_dnsserver' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '1', + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT server_id,server_name FROM server WHERE dns_server = 1 AND {AUTHSQL} ORDER BY server_name', + 'keyfield'=> 'server_id', + 'valuefield'=> 'server_name' + ), + 'value' => '' + ), 'limit_dns_slave_zone' => array ( 'datatype' => 'INTEGER', 'formtype' => 'TEXT', diff --git a/interface/web/client/lib/lang/de_client.lng b/interface/web/client/lib/lang/de_client.lng index 46afed5..0c89739 100644 --- a/interface/web/client/lib/lang/de_client.lng +++ b/interface/web/client/lib/lang/de_client.lng @@ -103,10 +103,10 @@ $wb['limit_web_quota_txt'] = 'Webbeschränkung'; $wb['limit_traffic_quota_txt'] = 'Trafficbeschränkung'; $wb['limit_trafficquota_error_notint'] = 'Trafficbeschränkung muss eine Zahl sein.'; -$wb['limit_dns_slave_zone_txt'] = 'Max. Anzahl an Zweiter DNS Zonen'; +$wb['limit_dns_slave_zone_txt'] = 'Max. Anzahl an Secondary DNS Zonen'; $wb['limit_webdav_user_txt'] = 'Max. Anzahl an WebDAV Benutzern'; $wb['limit_webdav_user_error_notint'] = 'Das WebDAV Benutzer Limit muss eine Zahl sein.'; -$wb['limit_dns_slave_zone_error_notint'] = 'Das Zweiter DNS Zonen Limit muss eine Zahl sein.'; +$wb['limit_dns_slave_zone_error_notint'] = 'Das Secondary DNS Zonen Limit muss eine Zahl sein.'; $wb['customer_no_txt'] = 'Kundennummer'; $wb['vat_id_txt'] = 'USt-ID'; $wb['required_fields_txt'] = '* Benötigte Felder'; @@ -143,4 +143,5 @@ $wb['aps_limits_txt'] = 'APS Installationsassistent Limits'; $wb['limit_aps_txt'] = 'Max. Anzahl an APS-Instanzen'; $wb['limit_aps_error_notint'] = 'Das APS Instanzen Limit muss eine Zahl sein.'; +$wb["default_slave_dnsserver_txt"] = 'Standard Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/de_reseller.lng b/interface/web/client/lib/lang/de_reseller.lng index 14cd58a..3b06329 100644 --- a/interface/web/client/lib/lang/de_reseller.lng +++ b/interface/web/client/lib/lang/de_reseller.lng @@ -101,8 +101,8 @@ $wb['limit_web_quota_txt'] = 'Speicherplatzbeschränkung'; $wb['limit_traffic_quota_txt'] = 'Transfervolumenbeschränkung'; $wb['limit_trafficquota_error_notint'] = 'Transfervolumenbeschränkung muss eine Zahl sein.'; -$wb['limit_dns_slave_zone_txt'] = 'Max. Anzahl an Zweiter DNS Zonen'; -$wb['limit_dns_slave_zone_error_notint'] = 'Das Zweiter DNS Zonen Limit muss eine Zahl sein.'; +$wb['limit_dns_slave_zone_txt'] = 'Max. Anzahl an Secondary DNS Zonen'; +$wb['limit_dns_slave_zone_error_notint'] = 'Das Secondary DNS Zonen Limit muss eine Zahl sein.'; $wb['limit_dns_record_error_notint'] = 'Das DNS Eintrag Limit muss eine Zahl sein.'; $wb['customer_no_txt'] = 'Kundennummer'; $wb['vat_id_txt'] = 'USt-ID'; @@ -142,4 +142,5 @@ $wb['aps_limits_txt'] = 'APS Installationsassistent Limits'; $wb['limit_aps_txt'] = 'Max. Anzahl an APS-Instanzen'; $wb['limit_aps_error_notint'] = 'Das APS Instanzen Limit muss eine Zahl sein.'; +$wb["default_slave_dnsserver_txt"] = 'Standard Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/en_client.lng b/interface/web/client/lib/lang/en_client.lng index 61a38a1..69574d8 100644 --- a/interface/web/client/lib/lang/en_client.lng +++ b/interface/web/client/lib/lang/en_client.lng @@ -146,4 +146,5 @@ $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb["default_slave_dnsserver_txt"] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/lib/lang/en_reseller.lng b/interface/web/client/lib/lang/en_reseller.lng index ccde71c..d936ddb 100644 --- a/interface/web/client/lib/lang/en_reseller.lng +++ b/interface/web/client/lib/lang/en_reseller.lng @@ -144,4 +144,5 @@ $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; +$wb["default_slave_dnsserver_txt"] = 'Default Secondary DNS Server'; ?> diff --git a/interface/web/client/reseller_edit.php b/interface/web/client/reseller_edit.php index 83754f3..1d02237 100644 --- a/interface/web/client/reseller_edit.php +++ b/interface/web/client/reseller_edit.php @@ -175,7 +175,7 @@ $tmp = $app->db->queryOneRecord('SELECT server_id FROM server WHERE db_server = 1 LIMIT 0,1'); $default_dbserver = $app->functions->intval($tmp['server_id']); - $sql = "UPDATE client SET default_mailserver = $default_mailserver, default_webserver = $default_webserver, default_dnsserver = $default_dnsserver, default_dbserver = $default_dbserver WHERE client_id = ".$this->id; + $sql = "UPDATE client SET default_mailserver = $default_mailserver, default_webserver = $default_webserver, default_dnsserver = $default_dnsserver, default_slave_dnsserver = $default_dnsserver, default_dbserver = $default_dbserver WHERE client_id = ".$this->id; $app->db->query($sql); parent::onAfterInsert(); diff --git a/interface/web/client/templates/client_edit_limits.htm b/interface/web/client/templates/client_edit_limits.htm index 3ad6c9d..94d5d5e 100644 --- a/interface/web/client/templates/client_edit_limits.htm +++ b/interface/web/client/templates/client_edit_limits.htm @@ -256,6 +256,12 @@ <label for="limit_dns_zone">{tmpl_var name='limit_dns_zone_txt'}</label> <input name="limit_dns_zone" id="limit_dns_zone" value="{tmpl_var name='limit_dns_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> </div> + <div class="ctrlHolder"> + <label for="default_slave_dnsserver">{tmpl_var name='default_slave_dnsserver_txt'}</label> + <select name="default_slave_dnsserver" id="default_slave_dnsserver" class="selectInput"> + {tmpl_var name='default_slave_dnsserver'} + </select> + </div> <div class="ctrlHolder"> <label for="limit_dns_slave_zone">{tmpl_var name='limit_dns_slave_zone_txt'}</label> <input name="limit_dns_slave_zone" id="limit_dns_slave_zone" value="{tmpl_var name='limit_dns_slave_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> diff --git a/interface/web/client/templates/reseller_edit_limits.htm b/interface/web/client/templates/reseller_edit_limits.htm index 468a680..6a93369 100644 --- a/interface/web/client/templates/reseller_edit_limits.htm +++ b/interface/web/client/templates/reseller_edit_limits.htm @@ -244,6 +244,12 @@ <label for="limit_dns_zone">{tmpl_var name='limit_dns_zone_txt'}</label> <input name="limit_dns_zone" id="limit_dns_zone" value="{tmpl_var name='limit_dns_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> </div> + <div class="ctrlHolder"> + <label for="default_slave_dnsserver">{tmpl_var name='default_slave_dnsserver_txt'}</label> + <select name="default_slave_dnsserver" id="default_slave_dnsserver" class="selectInput"> + {tmpl_var name='default_slave_dnsserver'} + </select> + </div> <div class="ctrlHolder"> <label for="limit_dns_slave_zone">{tmpl_var name='limit_dns_slave_zone_txt'}</label> <input name="limit_dns_slave_zone" id="limit_dns_slave_zone" value="{tmpl_var name='limit_dns_slave_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> diff --git a/interface/web/dns/dns_slave_edit.php b/interface/web/dns/dns_slave_edit.php index 2a5247a..d969165 100644 --- a/interface/web/dns/dns_slave_edit.php +++ b/interface/web/dns/dns_slave_edit.php @@ -123,7 +123,7 @@ if($_SESSION["s"]["user"]["typ"] != 'admin') { // Get the limits of the client $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_slave_zone, default_dnsserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + $client = $app->db->queryOneRecord("SELECT limit_dns_slave_zone, default_slave_dnsserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); // When the record is updated if($this->id > 0) { @@ -134,7 +134,7 @@ // When the record is inserted } else { // set the server ID to the default dnsserver of the client - $this->dataRecord["server_id"] = $client["default_dnsserver"]; + $this->dataRecord["server_id"] = $client["default_slave_dnsserver"]; // Check if the user may add anoter secondary domain. if(!$app->tform->checkClientLimit('limit_dns_slave_zone')) { -- Gitblit v1.9.1