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