diff --git a/interface/lib/classes/custom_datasource.inc.php b/interface/lib/classes/custom_datasource.inc.php index 298e997416b1e2b99faf5c59a7b2fc8f02257e3f..d89991f975c71c25a1f1fd382398c5af17cdaca6 100644 --- a/interface/lib/classes/custom_datasource.inc.php +++ b/interface/lib/classes/custom_datasource.inc.php @@ -40,6 +40,30 @@ class custom_datasource { } 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 2fbea3cf77e68514b5e83e1368838c5f09a50e0c..c235fe766b407ac4dba7254246024bbaad755422 100644 --- a/interface/web/dns/list/dns_soa.list.php +++ b/interface/web/dns/list/dns_soa.list.php @@ -64,10 +64,9 @@ $liste["item"][] = array( 'field' => "server_id", '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' => "");