diff --git a/phpBB/docs/CHANGELOG.html b/phpBB/docs/CHANGELOG.html
index 583b22804b..07f33f3dbd 100644
--- a/phpBB/docs/CHANGELOG.html
+++ b/phpBB/docs/CHANGELOG.html
@@ -274,7 +274,9 @@ p a {
[Fix] Correctly re-assign query result id after seeking rows (MSSQL/Firebird) (Bug #12369)
[Feature] Make effect of a changed hideonline permission instantaneous
[Fix] Do not overwrite larger memory values in the installer (Bug #12195)
-
+ [Fix] Order forums on role permission mask (Bug #12337)
+
+
Top
diff --git a/phpBB/includes/acp/auth.php b/phpBB/includes/acp/auth.php
index 669613c589..77b199b8a5 100644
--- a/phpBB/includes/acp/auth.php
+++ b/phpBB/includes/acp/auth.php
@@ -587,7 +587,8 @@ class auth_admin extends auth
// Get forum names
$sql = 'SELECT forum_id, forum_name
FROM ' . FORUMS_TABLE . '
- WHERE ' . $db->sql_in_set('forum_id', array_keys($hold_ary));
+ WHERE ' . $db->sql_in_set('forum_id', array_keys($hold_ary)) . '
+ ORDER BY left_id';
$result = $db->sql_query($sql);
$forum_names = array();
@@ -597,16 +598,12 @@ class auth_admin extends auth
}
$db->sql_freeresult($result);
- foreach ($hold_ary as $forum_id => $auth_ary)
+ foreach ($forum_names as $forum_id => $forum_name)
{
- // If there is no forum present the database holds auth information for a non-existent forum... continue then
- if ($forum_id && !isset($forum_names[$forum_id]))
- {
- continue;
- }
+ $auth_ary = $hold_ary[$forum_id];
$template->assign_block_vars('role_mask', array(
- 'NAME' => ($forum_id == 0) ? $user->lang['GLOBAL_MASK'] : $forum_names[$forum_id],
+ 'NAME' => ($forum_id == 0) ? $user->lang['GLOBAL_MASK'] : $forum_name,
'FORUM_ID' => $forum_id)
);