From 51ac4cb7df7a483ba3e2ca33e60644504ca1e1a1 Mon Sep 17 00:00:00 2001 From: ioguix Date: Sun, 18 Jul 2010 13:45:36 +0200 Subject: [PATCH] Fix a bug with grouping servers feature * opened connexions were appearing in every group * after connexion/disconnection, stay in the group instead of falling back in the 'all' group --- classes/Misc.php | 20 ++++++++++---------- servers.php | 1 + 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/classes/Misc.php b/classes/Misc.php index ffe00ff6..1d459fa2 100644 --- a/classes/Misc.php +++ b/classes/Misc.php @@ -1954,24 +1954,24 @@ */ function getServers($recordset = false, $group = false) { global $conf; - - $srvs = isset($_SESSION['webdbLogin']) && is_array($_SESSION['webdbLogin']) ? $_SESSION['webdbLogin'] : array(); - - if ($group !== false) { - if ($group !== 'all') - $group = array_fill_keys(explode(',', $conf['srv_groups'][$group]['servers']), 1); - } + + $logins = isset($_SESSION['webdbLogin']) && is_array($_SESSION['webdbLogin']) ? $_SESSION['webdbLogin'] : array(); + $srvs = array(); + + if (($group !== false) and ($group !== 'all')) + $group = array_fill_keys(explode(',', $conf['srv_groups'][$group]['servers']), 1); foreach($conf['servers'] as $idx => $info) { + $server_id = $info['host'].':'.$info['port'].':'.$info['sslmode']; if (($group === false) or (isset($group[$idx])) or ($group === 'all') ) { $server_id = $info['host'].':'.$info['port'].':'.$info['sslmode']; + + if (isset($logins[$server_id])) $srvs[$server_id] = $logins[$server_id]; + else $srvs[$server_id] = $info; - if (!isset($srvs[$server_id])) { - $srvs[$server_id] = $info; - } $srvs[$server_id]['id'] = $server_id; } } diff --git a/servers.php b/servers.php index 7790085d..83de22a4 100644 --- a/servers.php +++ b/servers.php @@ -76,6 +76,7 @@ if (($group !== false) and isset($conf['srv_groups'][$group])) { printf("

{$lang['strgroupservers']}

", htmlentities($conf['srv_groups'][$group]['desc'])); + $actions['logout']['url'] .= "group=" . htmlentities($group) . "&"; } $misc->printTable($servers, $columns, $actions, $lang['strnoobjects'], 'svPre'); -- 2.39.5