diff --git a/phpBB/docs/CHANGELOG.html b/phpBB/docs/CHANGELOG.html
index 4f52a4358d..72b8a17608 100644
--- a/phpBB/docs/CHANGELOG.html
+++ b/phpBB/docs/CHANGELOG.html
@@ -216,6 +216,7 @@ p a {
[Fix] Minor language and style fixes (Bugs #12235, #12493, #11949)
[Feature] Added backlinks to mcp_report (Bug #12905)
[Fix] Only check usernames in guest posts upon edit (Bug #11349)
+ [Fix] Consider viewonline permission when viewing friends/foes (Bug #12955)
[Fix] Added proper unicode support to ban reasons (Bug #12947)
diff --git a/phpBB/ucp.php b/phpBB/ucp.php
index b63c07ef2a..774f0e5651 100755
--- a/phpBB/ucp.php
+++ b/phpBB/ucp.php
@@ -256,7 +256,7 @@ if ($module->is_active('zebra', 'friends'))
$update_time = $config['load_online_time'] * 60;
$sql = $db->sql_build_query('SELECT_DISTINCT', array(
- 'SELECT' => 'u.user_id, u.username, u.username_clean, u.user_colour, u.user_allow_viewonline, MAX(s.session_time) as online_time, MIN(s.session_viewonline) AS viewonline',
+ 'SELECT' => 'u.user_id, u.username, u.username_clean, u.user_colour, MAX(s.session_time) as online_time, MIN(s.session_viewonline) AS viewonline',
'FROM' => array(
USERS_TABLE => 'u',
@@ -274,7 +274,7 @@ if ($module->is_active('zebra', 'friends'))
AND z.friend = 1
AND u.user_id = z.zebra_id',
- 'GROUP_BY' => 'z.zebra_id, u.user_id, u.username_clean, u.user_allow_viewonline, u.user_colour, u.username',
+ 'GROUP_BY' => 'z.zebra_id, u.user_id, u.username_clean, u.user_colour, u.username',
'ORDER_BY' => 'u.username_clean ASC',
));
@@ -283,7 +283,7 @@ if ($module->is_active('zebra', 'friends'))
while ($row = $db->sql_fetchrow($result))
{
- $which = (time() - $update_time < $row['online_time'] && $row['viewonline'] && $row['user_allow_viewonline']) ? 'online' : 'offline';
+ $which = (time() - $update_time < $row['online_time'] && ($row['viewonline'] || $auth->acl_get('u_viewonline'))) ? 'online' : 'offline';
$template->assign_block_vars("friends_{$which}", array(
'USER_ID' => $row['user_id'],
diff --git a/phpBB/viewonline.php b/phpBB/viewonline.php
index f655718d7e..3bd6bfd51d 100644
--- a/phpBB/viewonline.php
+++ b/phpBB/viewonline.php
@@ -117,7 +117,7 @@ if (!$show_guests)
}
// Get user list
-$sql = 'SELECT u.user_id, u.username, u.username_clean, u.user_type, u.user_allow_viewonline, u.user_colour, s.session_id, s.session_time, s.session_page, s.session_ip, s.session_viewonline
+$sql = 'SELECT u.user_id, u.username, u.username_clean, u.user_type, u.user_colour, s.session_id, s.session_time, s.session_page, s.session_ip, s.session_viewonline
FROM ' . USERS_TABLE . ' u, ' . SESSIONS_TABLE . ' s
WHERE u.user_id = s.session_user_id
AND s.session_time >= ' . (time() - ($config['load_online_time'] * 60)) .