Skip to content

Commit 376812a

Browse files
committed
Fixed: FS#773 - Client can see all servers in DNS
1 parent 6c9eba0 commit 376812a

File tree

2 files changed

+27
-4
lines changed

2 files changed

+27
-4
lines changed

interface/lib/classes/custom_datasource.inc.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,30 @@ function master_templates($field, $record) {
4040
}
4141
return $records_new;
4242
}
43+
44+
function dns_servers($field, $record) {
45+
global $app, $conf;
46+
47+
if($_SESSION["s"]["user"]["typ"] == 'user') {
48+
// Get the limits of the client
49+
$client_group_id = $_SESSION["s"]["user"]["default_group"];
50+
$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");
51+
$sql = "SELECT server_id,server_name FROM server WHERE server_id = ".$client['default_dnsserver'];
52+
} else {
53+
$sql = "SELECT server_id,server_name FROM server WHERE dns_server = 1 ORDER BY server_name";
54+
}
55+
$records = $app->db->queryAllRecords($sql);
56+
$records_new = array();
57+
if(is_array($records)) {
58+
foreach($records as $rec) {
59+
$key = $rec['server_id'];
60+
$records_new[$key] = $rec['server_name'];
61+
}
62+
}
63+
return $records_new;
64+
}
65+
66+
4367

4468
}
4569

interface/web/dns/list/dns_soa.list.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,9 @@
6464
'op' => "like",
6565
'prefix' => "%",
6666
'suffix' => "%",
67-
'datasource' => array ( 'type' => 'SQL',
68-
'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name',
69-
'keyfield'=> 'server_id',
70-
'valuefield'=> 'server_name'
67+
'datasource' => array ( 'type' => 'CUSTOM',
68+
'class'=> 'custom_datasource',
69+
'function'=> 'dns_servers'
7170
),
7271
'width' => "",
7372
'value' => "");

0 commit comments

Comments
 (0)