aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/viewonline.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/viewonline.php')
-rw-r--r--phpBB/viewonline.php26
1 files changed, 21 insertions, 5 deletions
diff --git a/phpBB/viewonline.php b/phpBB/viewonline.php
index 785dce5229..4a862c4367 100644
--- a/phpBB/viewonline.php
+++ b/phpBB/viewonline.php
@@ -363,11 +363,27 @@ unset($vars_online);
$pagination = generate_pagination(append_sid("{$phpbb_root_path}viewonline.$phpEx", "sg=$show_guests&sk=$sort_key&sd=$sort_dir"), $counter, $config['topics_per_page'], $start);
// Grab group details for legend display
-$sql = 'SELECT group_id, group_name, group_colour, group_type
- FROM ' . GROUPS_TABLE . '
- WHERE group_legend = 1
- AND group_type <> ' . GROUP_HIDDEN . '
- ORDER BY group_name ASC';
+if ($auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel'))
+{
+ $sql = 'SELECT group_id, group_name, group_colour, group_type
+ FROM ' . GROUPS_TABLE . '
+ WHERE group_legend = 1
+ ORDER BY group_name ASC';
+}
+else
+{
+ $sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_type
+ FROM ' . GROUPS_TABLE . ' g
+ LEFT JOIN ' . USER_GROUP_TABLE . ' ug
+ ON (
+ g.group_id = ug.group_id
+ AND ug.user_id = ' . $user->data['user_id'] . '
+ AND ug.user_pending = 0
+ )
+ WHERE g.group_legend = 1
+ AND (g.group_type <> ' . GROUP_HIDDEN . ' OR ug.user_id = ' . $user->data['user_id'] . ')
+ ORDER BY g.group_name ASC';
+}
$result = $db->sql_query($sql);
$legend = '';