diff --git a/interface/lib/classes/functions.inc.php b/interface/lib/classes/functions.inc.php index 83ec411d9ace94c3d859e938a05a653cb13d1105..b1584d7546e1cb8a9b3baf28045e08bc536cff9b 100644 --- a/interface/lib/classes/functions.inc.php +++ b/interface/lib/classes/functions.inc.php @@ -184,6 +184,7 @@ class functions { public function suggest_ips($type = 'IPv4'){ global $app; + $groupid = intval($_SESSION["s"]["user"]["default_group"]); if($type == 'IPv4'){ // $regex = "/^[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}$/"; @@ -198,10 +199,17 @@ class functions { $servers = $app->db->queryAllRecords("SELECT * FROM server"); if(is_array($servers) && !empty($servers)){ foreach($servers as $server){ - $server_by_id[$server['server_id']] = $server['server_name']; + $server_by_id[$server['server_id']] = '' . $server['server_name'] . ''; } } + $servers = $app->db->queryAllRecords("SELECT data as server_ip, name as server_name FROM `dns_rr` where type ='AAAA' or type = 'A'"); + if(is_array($servers) && !empty($servers)){ + foreach($servers as $server){ + $server_by_ip[$server['server_ip']] = $server['server_name']; + } + } + $ips = array(); $results = $app->db->queryAllRecords("SELECT ip_address AS ip, server_id FROM server_ip WHERE ip_type = ?", $type); if(!empty($results) && is_array($results)){ @@ -218,20 +226,24 @@ class functions { if(preg_match($regex, $result['ip'])) $ips[] = $result['ip']; } } - $results = $app->db->queryAllRecords("SELECT data AS ip FROM dns_rr WHERE type = 'A' OR type = 'AAAA'"); + $results = $groupid != 1 ? $app->db->queryAllRecords("SELECT data AS ip FROM dns_rr WHERE (type = 'A' OR type = 'AAAA') AND sys_groupid = ?", $groupid) : $results = $app->db->queryAllRecords("SELECT data AS ip FROM dns_rr WHERE type = 'A' OR type = 'AAAA'"); + if(!empty($results) && is_array($results)){ foreach($results as $result){ if(preg_match($regex, $result['ip'])) $ips[] = $result['ip']; } } - $results = $app->db->queryAllRecords("SELECT ns AS ip FROM dns_slave"); + + $results = $groupid != 1 ? $app->db->queryAllRecords("SELECT ns AS ip FROM dns_slave WHERE sys_groupid = ?", $groupid) : $results = $app->db->queryAllRecords("SELECT ns AS ip FROM dns_slave"); + if(!empty($results) && is_array($results)){ foreach($results as $result){ if(preg_match($regex, $result['ip'])) $ips[] = $result['ip']; } } - $results = $app->db->queryAllRecords("SELECT remote_ips FROM web_database WHERE remote_ips != ''"); + $results = $groupid != 1 ? $app->db->queryAllRecords("SELECT remote_ips FROM web_database WHERE remote_ips != '' AND sys_groupid = ?", $groupid) : $results = $app->db->queryAllRecords("SELECT remote_ips FROM web_database WHERE remote_ips != ''"); + if(!empty($results) && is_array($results)){ foreach($results as $result){ $tmp_ips = explode(',', $result['remote_ips']); @@ -249,7 +261,7 @@ class functions { if(!empty($ips)){ $result_array['cheader'] = array('title' => 'IPs', 'total' => count($ips), - 'limit' => count($ips) + 'limit' => count($ips), ); foreach($ips as $ip){ diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.css b/interface/web/themes/default/assets/stylesheets/ispconfig.css index e6ff41f2abb077bb03491144a58f4b8b31ae9f15..1cdadb86766a903190efced20432578de2a124ee 100644 --- a/interface/web/themes/default/assets/stylesheets/ispconfig.css +++ b/interface/web/themes/default/assets/stylesheets/ispconfig.css @@ -796,7 +796,12 @@ span.tmp_account_name { #select_server .select2-choice { height: auto; } + span.pbvaluemargin { margin-left: 5px; } +.ip_suggestion_server { + font-weight: bold; + font-style: italic; +}