Skip to content

Commit f3f32d1

Browse files
committed
Fixed: FS#867 - Server selector is not working for clients in 3.0.1.4 beta 2
1 parent 2bbc4c7 commit f3f32d1

File tree

1 file changed

+35
-2
lines changed

1 file changed

+35
-2
lines changed

interface/lib/classes/custom_datasource.inc.php

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,48 @@ function client_servers($field, $record) {
6969

7070
$server_type = $field['name'];
7171

72+
switch($server_type) {
73+
case 'default_mailserver':
74+
$field = 'mail_server';
75+
break;
76+
case 'default_webserver':
77+
$field = 'web_server';
78+
break;
79+
case 'default_dnsserver':
80+
$field = 'dns_server';
81+
break;
82+
case 'default_fileserver':
83+
$field = 'file_server';
84+
break;
85+
case 'default_dbserver':
86+
$field = 'db_server';
87+
break;
88+
case 'default_vserverserver':
89+
$field = 'vserver_server';
90+
break;
91+
default:
92+
$field = 'web_server';
93+
break;
94+
}
95+
7296
if($_SESSION["s"]["user"]["typ"] == 'user') {
7397
// Get the limits of the client
7498
$client_group_id = $_SESSION["s"]["user"]["default_group"];
7599
$sql = "SELECT $server_type as server_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id";
76100
$client = $app->db->queryOneRecord($sql);
77-
$sql = "SELECT server_id,server_name FROM server WHERE server_id = ".$client['server_id'];
101+
if($client['server_id'] > 0) {
102+
//* Select the default server for the client
103+
$sql = "SELECT server_id,server_name FROM server WHERE server_id = ".$client['server_id'];
104+
} else {
105+
//* Not able to find the clients defaults, use this as fallback and add a warning message to the log
106+
$app->log('Unable to find default server for client in custom_datasource.inc.php',1);
107+
$sql = "SELECT server_id,server_name FROM server WHERE $field = 1 ORDER BY server_name";
108+
}
78109
} else {
79-
$sql = "SELECT server_id,server_name FROM server WHERE dns_server = 1 ORDER BY server_name";
110+
//* The logged in user is admin, so we show him all available servers of a specific type.
111+
$sql = "SELECT server_id,server_name FROM server WHERE $field = 1 ORDER BY server_name";
80112
}
113+
81114
$records = $app->db->queryAllRecords($sql);
82115
$records_new = array();
83116
if(is_array($records)) {

0 commit comments

Comments
 (0)