From 376812aa8835d8211da8f008057b7f7f8ee9c50b Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Sun, 21 Jun 2009 11:18:55 -0400 Subject: [PATCH] Fixed: FS#773 - Client can see all servers in DNS --- interface/web/dns/list/dns_soa.list.php | 7 +++---- interface/lib/classes/custom_datasource.inc.php | 24 ++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/interface/lib/classes/custom_datasource.inc.php b/interface/lib/classes/custom_datasource.inc.php index 298e997..d89991f 100644 --- a/interface/lib/classes/custom_datasource.inc.php +++ b/interface/lib/classes/custom_datasource.inc.php @@ -40,6 +40,30 @@ } return $records_new; } + + function dns_servers($field, $record) { + global $app, $conf; + + if($_SESSION["s"]["user"]["typ"] == 'user') { + // Get the limits of the client + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $client = $app->db->queryOneRecord("SELECT default_dnsserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + $sql = "SELECT server_id,server_name FROM server WHERE server_id = ".$client['default_dnsserver']; + } else { + $sql = "SELECT server_id,server_name FROM server WHERE dns_server = 1 ORDER BY server_name"; + } + $records = $app->db->queryAllRecords($sql); + $records_new = array(); + if(is_array($records)) { + foreach($records as $rec) { + $key = $rec['server_id']; + $records_new[$key] = $rec['server_name']; + } + } + return $records_new; + } + + } diff --git a/interface/web/dns/list/dns_soa.list.php b/interface/web/dns/list/dns_soa.list.php index 2fbea3c..c235fe7 100644 --- a/interface/web/dns/list/dns_soa.list.php +++ b/interface/web/dns/list/dns_soa.list.php @@ -64,10 +64,9 @@ 'op' => "like", 'prefix' => "%", 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' + 'datasource' => array ( 'type' => 'CUSTOM', + 'class'=> 'custom_datasource', + 'function'=> 'dns_servers' ), 'width' => "", 'value' => ""); -- Gitblit v1.9.1