mirror of
https://github.com/phpbb/phpbb.git
synced 2025-07-30 21:40:43 +02:00
Merge pull request #1513 from nickvergessen/ticket/11582
Ticket/11582 Split permission logic from translations
This commit is contained in:
@@ -25,7 +25,7 @@ class acp_permission_roles
|
||||
|
||||
function main($id, $mode)
|
||||
{
|
||||
global $db, $user, $auth, $template, $cache;
|
||||
global $db, $user, $auth, $template, $cache, $phpbb_container;
|
||||
global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
|
||||
|
||||
include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
|
||||
@@ -306,6 +306,8 @@ class acp_permission_roles
|
||||
trigger_error($user->lang['NO_ROLE_SELECTED'] . adm_back_link($this->u_action), E_USER_WARNING);
|
||||
}
|
||||
|
||||
$phpbb_permissions = $phpbb_container->get('acl.permissions');
|
||||
|
||||
$template->assign_vars(array(
|
||||
'S_EDIT' => true,
|
||||
|
||||
@@ -314,9 +316,8 @@ class acp_permission_roles
|
||||
|
||||
'ROLE_NAME' => $role_row['role_name'],
|
||||
'ROLE_DESCRIPTION' => $role_row['role_description'],
|
||||
'L_ACL_TYPE' => $user->lang['ACL_TYPE_' . strtoupper($permission_type)],
|
||||
)
|
||||
);
|
||||
'L_ACL_TYPE' => $phpbb_permissions->get_type_lang($permission_type),
|
||||
));
|
||||
|
||||
// We need to fill the auth options array with ACL_NO options ;)
|
||||
$sql = 'SELECT auth_option_id, auth_option
|
||||
@@ -456,7 +457,9 @@ class acp_permission_roles
|
||||
*/
|
||||
function display_auth_options($auth_options)
|
||||
{
|
||||
global $template, $user;
|
||||
global $template, $user, $phpbb_container;
|
||||
|
||||
$phpbb_permissions = $phpbb_container->get('acl.permissions');
|
||||
|
||||
$content_array = $categories = array();
|
||||
$key_sort_array = array(0);
|
||||
@@ -473,7 +476,7 @@ class acp_permission_roles
|
||||
foreach ($content_array as $cat => $cat_array)
|
||||
{
|
||||
$template->assign_block_vars('auth', array(
|
||||
'CAT_NAME' => $user->lang['permission_cat'][$cat],
|
||||
'CAT_NAME' => $phpbb_permissions->get_category_lang($cat),
|
||||
|
||||
'S_YES' => ($cat_array['S_YES'] && !$cat_array['S_NEVER'] && !$cat_array['S_NO']) ? true : false,
|
||||
'S_NEVER' => ($cat_array['S_NEVER'] && !$cat_array['S_YES'] && !$cat_array['S_NO']) ? true : false,
|
||||
@@ -488,8 +491,8 @@ class acp_permission_roles
|
||||
'S_NO' => ($allowed == ACL_NO) ? true : false,
|
||||
|
||||
'FIELD_NAME' => $permission,
|
||||
'PERMISSION' => $user->lang['acl_' . $permission]['lang'])
|
||||
);
|
||||
'PERMISSION' => $phpbb_permissions->get_permission_lang($permission),
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -22,15 +22,18 @@ class acp_permissions
|
||||
{
|
||||
var $u_action;
|
||||
var $permission_dropdown;
|
||||
protected $permissions;
|
||||
|
||||
function main($id, $mode)
|
||||
{
|
||||
global $db, $user, $auth, $template, $cache;
|
||||
global $db, $user, $auth, $template, $cache, $phpbb_container;
|
||||
global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
|
||||
|
||||
include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
|
||||
include_once($phpbb_root_path . 'includes/acp/auth.' . $phpEx);
|
||||
|
||||
$this->permissions = $phpbb_container->get('acl.permissions');
|
||||
|
||||
$auth_admin = new auth_admin();
|
||||
|
||||
$user->add_lang('acp/permissions');
|
||||
@@ -49,7 +52,7 @@ class acp_permissions
|
||||
|
||||
if ($user_id && isset($auth_admin->acl_options['id'][$permission]) && $auth->acl_get('a_viewauth'))
|
||||
{
|
||||
$this->page_title = sprintf($user->lang['TRACE_PERMISSION'], $user->lang['acl_' . $permission]['lang']);
|
||||
$this->page_title = sprintf($user->lang['TRACE_PERMISSION'], $this->permissions->get_permission_lang($permission));
|
||||
$this->permission_trace($user_id, $forum_id, $permission);
|
||||
return;
|
||||
}
|
||||
@@ -512,7 +515,7 @@ class acp_permissions
|
||||
|
||||
$template->assign_vars(array(
|
||||
'S_PERMISSION_DROPDOWN' => (sizeof($this->permission_dropdown) > 1) ? $this->build_permission_dropdown($this->permission_dropdown, $permission_type, $permission_scope) : false,
|
||||
'L_PERMISSION_TYPE' => $user->lang['ACL_TYPE_' . strtoupper($permission_type)],
|
||||
'L_PERMISSION_TYPE' => $this->permissions->get_type_lang($permission_type),
|
||||
|
||||
'U_ACTION' => $this->u_action,
|
||||
'S_HIDDEN_FIELDS' => $s_hidden_fields)
|
||||
@@ -587,7 +590,7 @@ class acp_permissions
|
||||
*/
|
||||
function build_permission_dropdown($options, $default_option, $permission_scope)
|
||||
{
|
||||
global $user, $auth;
|
||||
global $auth;
|
||||
|
||||
$s_dropdown_options = '';
|
||||
foreach ($options as $setting)
|
||||
@@ -598,7 +601,7 @@ class acp_permissions
|
||||
}
|
||||
|
||||
$selected = ($setting == $default_option) ? ' selected="selected"' : '';
|
||||
$l_setting = (isset($user->lang['permission_type'][$permission_scope][$setting])) ? $user->lang['permission_type'][$permission_scope][$setting] : $user->lang['permission_type'][$setting];
|
||||
$l_setting = $this->permissions->get_type_lang($setting, $permission_scope);
|
||||
$s_dropdown_options .= '<option value="' . $setting . '"' . $selected . '>' . $l_setting . '</option>';
|
||||
}
|
||||
|
||||
@@ -979,7 +982,7 @@ class acp_permissions
|
||||
$back = request_var('back', 0);
|
||||
|
||||
$template->assign_vars(array(
|
||||
'PERMISSION' => $user->lang['acl_' . $permission]['lang'],
|
||||
'PERMISSION' => $this->permissions->get_permission_lang($permission),
|
||||
'PERMISSION_USERNAME' => $userdata['username'],
|
||||
'FORUM_NAME' => $forum_name,
|
||||
|
||||
|
@@ -261,7 +261,8 @@ class auth_admin extends phpbb_auth
|
||||
*/
|
||||
function display_mask($mode, $permission_type, &$hold_ary, $user_mode = 'user', $local = false, $group_display = true)
|
||||
{
|
||||
global $template, $user, $db, $phpbb_root_path, $phpEx;
|
||||
global $template, $user, $db, $phpbb_root_path, $phpEx, $phpbb_container;
|
||||
$phpbb_permissions = $phpbb_container->get('acl.permissions');
|
||||
|
||||
// Define names for template loops, might be able to be set
|
||||
$tpl_pmask = 'p_mask';
|
||||
@@ -269,7 +270,7 @@ class auth_admin extends phpbb_auth
|
||||
$tpl_category = 'category';
|
||||
$tpl_mask = 'mask';
|
||||
|
||||
$l_acl_type = (isset($user->lang['ACL_TYPE_' . (($local) ? 'LOCAL' : 'GLOBAL') . '_' . strtoupper($permission_type)])) ? $user->lang['ACL_TYPE_' . (($local) ? 'LOCAL' : 'GLOBAL') . '_' . strtoupper($permission_type)] : 'ACL_TYPE_' . (($local) ? 'LOCAL' : 'GLOBAL') . '_' . strtoupper($permission_type);
|
||||
$l_acl_type = $phpbb_permissions->get_type_lang($permission_type, (($local) ? 'local' : 'global'));
|
||||
|
||||
// Allow trace for viewing permissions and in user mode
|
||||
$show_trace = ($mode == 'view' && $user_mode == 'user') ? true : false;
|
||||
@@ -1100,7 +1101,9 @@ class auth_admin extends phpbb_auth
|
||||
*/
|
||||
function assign_cat_array(&$category_array, $tpl_cat, $tpl_mask, $ug_id, $forum_id, $show_trace = false, $s_view)
|
||||
{
|
||||
global $template, $user, $phpbb_admin_path, $phpEx;
|
||||
global $template, $user, $phpbb_admin_path, $phpEx, $phpbb_container;
|
||||
|
||||
$phpbb_permissions = $phpbb_container->get('acl.permissions');
|
||||
|
||||
@reset($category_array);
|
||||
while (list($cat, $cat_array) = each($category_array))
|
||||
@@ -1110,8 +1113,8 @@ class auth_admin extends phpbb_auth
|
||||
'S_NEVER' => ($cat_array['S_NEVER'] && !$cat_array['S_YES'] && !$cat_array['S_NO']) ? true : false,
|
||||
'S_NO' => ($cat_array['S_NO'] && !$cat_array['S_NEVER'] && !$cat_array['S_YES']) ? true : false,
|
||||
|
||||
'CAT_NAME' => $user->lang['permission_cat'][$cat])
|
||||
);
|
||||
'CAT_NAME' => $phpbb_permissions->get_category_lang($cat),
|
||||
));
|
||||
|
||||
/* Sort permissions by name (more naturaly and user friendly than sorting by a primary key)
|
||||
* Commented out due to it's memory consumption and time needed
|
||||
@@ -1145,8 +1148,8 @@ class auth_admin extends phpbb_auth
|
||||
'U_TRACE' => ($show_trace) ? append_sid("{$phpbb_admin_path}index.$phpEx", "i=permissions&mode=trace&u=$ug_id&f=$forum_id&auth=$permission") : '',
|
||||
'UA_TRACE' => ($show_trace) ? append_sid("{$phpbb_admin_path}index.$phpEx", "i=permissions&mode=trace&u=$ug_id&f=$forum_id&auth=$permission", false) : '',
|
||||
|
||||
'PERMISSION' => $user->lang['acl_' . $permission]['lang'])
|
||||
);
|
||||
'PERMISSION' => $phpbb_permissions->get_permission_lang($permission),
|
||||
));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1163,8 +1166,8 @@ class auth_admin extends phpbb_auth
|
||||
'U_TRACE' => ($show_trace) ? append_sid("{$phpbb_admin_path}index.$phpEx", "i=permissions&mode=trace&u=$ug_id&f=$forum_id&auth=$permission") : '',
|
||||
'UA_TRACE' => ($show_trace) ? append_sid("{$phpbb_admin_path}index.$phpEx", "i=permissions&mode=trace&u=$ug_id&f=$forum_id&auth=$permission", false) : '',
|
||||
|
||||
'PERMISSION' => $user->lang['acl_' . $permission]['lang'])
|
||||
);
|
||||
'PERMISSION' => $phpbb_permissions->get_permission_lang($permission),
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1176,7 +1179,9 @@ class auth_admin extends phpbb_auth
|
||||
*/
|
||||
function build_permission_array(&$permission_row, &$content_array, &$categories, $key_sort_array)
|
||||
{
|
||||
global $user;
|
||||
global $user, $phpbb_container;
|
||||
|
||||
$phpbb_permissions = $phpbb_container->get('acl.permissions');
|
||||
|
||||
foreach ($key_sort_array as $forum_id)
|
||||
{
|
||||
@@ -1191,20 +1196,12 @@ class auth_admin extends phpbb_auth
|
||||
@reset($permissions);
|
||||
while (list($permission, $auth_setting) = each($permissions))
|
||||
{
|
||||
if (!isset($user->lang['acl_' . $permission]))
|
||||
{
|
||||
$user->lang['acl_' . $permission] = array(
|
||||
'cat' => 'misc',
|
||||
'lang' => '{ acl_' . $permission . ' }'
|
||||
);
|
||||
}
|
||||
|
||||
$cat = $user->lang['acl_' . $permission]['cat'];
|
||||
$cat = $phpbb_permissions->get_permission_category($permission);
|
||||
|
||||
// Build our categories array
|
||||
if (!isset($categories[$cat]))
|
||||
{
|
||||
$categories[$cat] = $user->lang['permission_cat'][$cat];
|
||||
$categories[$cat] = $phpbb_permissions->get_category_lang($cat);
|
||||
}
|
||||
|
||||
// Build our content array
|
||||
|
Reference in New Issue
Block a user