mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-29 06:38:52 +00:00
Merge pull request #5938 from mrgoldy/ticket/16430
[ticket/16430] Sort permissions
This commit is contained in:
commit
7a1231a32f
1 changed files with 16 additions and 23 deletions
|
@ -1131,9 +1131,11 @@ class auth_admin extends \phpbb\auth\auth
|
||||||
{
|
{
|
||||||
global $template, $phpbb_admin_path, $phpEx, $phpbb_container;
|
global $template, $phpbb_admin_path, $phpEx, $phpbb_container;
|
||||||
|
|
||||||
/* @var $phpbb_permissions \phpbb\permissions */
|
/** @var \phpbb\permissions $phpbb_permissions */
|
||||||
$phpbb_permissions = $phpbb_container->get('acl.permissions');
|
$phpbb_permissions = $phpbb_container->get('acl.permissions');
|
||||||
|
|
||||||
|
$order = array_flip(array_keys($phpbb_permissions->get_permissions()));
|
||||||
|
|
||||||
foreach ($category_array as $cat => $cat_array)
|
foreach ($category_array as $cat => $cat_array)
|
||||||
{
|
{
|
||||||
if (!$phpbb_permissions->category_defined($cat))
|
if (!$phpbb_permissions->category_defined($cat))
|
||||||
|
@ -1149,28 +1151,14 @@ class auth_admin extends \phpbb\auth\auth
|
||||||
'CAT_NAME' => $phpbb_permissions->get_category_lang($cat),
|
'CAT_NAME' => $phpbb_permissions->get_category_lang($cat),
|
||||||
));
|
));
|
||||||
|
|
||||||
/* Sort permissions by name (more naturaly and user friendly than sorting by a primary key)
|
$permissions = array_filter($cat_array['permissions'], [$phpbb_permissions, 'permission_defined'], ARRAY_FILTER_USE_KEY);
|
||||||
* Commented out due to it's memory consumption and time needed
|
|
||||||
*
|
|
||||||
$key_array = array_intersect(array_keys($user->lang), array_map(create_function('$a', 'return "acl_" . $a;'), array_keys($cat_array['permissions'])));
|
|
||||||
$values_array = $cat_array['permissions'];
|
|
||||||
|
|
||||||
$cat_array['permissions'] = array();
|
uksort($permissions, function($a, $b) use ($order) {
|
||||||
|
return $order[$a] <=> $order[$b];
|
||||||
|
});
|
||||||
|
|
||||||
foreach ($key_array as $key)
|
foreach ($permissions as $permission => $allowed)
|
||||||
{
|
{
|
||||||
$key = str_replace('acl_', '', $key);
|
|
||||||
$cat_array['permissions'][$key] = $values_array[$key];
|
|
||||||
}
|
|
||||||
unset($key_array, $values_array);
|
|
||||||
*/
|
|
||||||
foreach ($cat_array['permissions'] as $permission => $allowed)
|
|
||||||
{
|
|
||||||
if (!$phpbb_permissions->permission_defined($permission))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($s_view)
|
if ($s_view)
|
||||||
{
|
{
|
||||||
$template->assign_block_vars($tpl_cat . '.' . $tpl_mask, array(
|
$template->assign_block_vars($tpl_cat . '.' . $tpl_mask, array(
|
||||||
|
@ -1218,9 +1206,11 @@ class auth_admin extends \phpbb\auth\auth
|
||||||
{
|
{
|
||||||
global $phpbb_container;
|
global $phpbb_container;
|
||||||
|
|
||||||
/* @var $phpbb_permissions \phpbb\permissions */
|
/** @var \phpbb\permissions $phpbb_permissions */
|
||||||
$phpbb_permissions = $phpbb_container->get('acl.permissions');
|
$phpbb_permissions = $phpbb_container->get('acl.permissions');
|
||||||
|
|
||||||
|
$order = array_flip(array_keys($phpbb_permissions->get_permissions()));
|
||||||
|
|
||||||
foreach ($key_sort_array as $forum_id)
|
foreach ($key_sort_array as $forum_id)
|
||||||
{
|
{
|
||||||
if (!isset($permission_row[$forum_id]))
|
if (!isset($permission_row[$forum_id]))
|
||||||
|
@ -1228,8 +1218,11 @@ class auth_admin extends \phpbb\auth\auth
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$permissions = $permission_row[$forum_id];
|
$permissions = array_filter($permission_row[$forum_id], [$phpbb_permissions, 'permission_defined'], ARRAY_FILTER_USE_KEY);
|
||||||
ksort($permissions);
|
|
||||||
|
uksort($permissions, function($a, $b) use ($order) {
|
||||||
|
return $order[$a] <=> $order[$b];
|
||||||
|
});
|
||||||
|
|
||||||
foreach ($permissions as $permission => $auth_setting)
|
foreach ($permissions as $permission => $auth_setting)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue