diff options
Diffstat (limited to 'phpBB/includes/acp/acp_permissions.php')
| -rw-r--r-- | phpBB/includes/acp/acp_permissions.php | 68 | 
1 files changed, 32 insertions, 36 deletions
diff --git a/phpBB/includes/acp/acp_permissions.php b/phpBB/includes/acp/acp_permissions.php index e9f0af5071..e7dc03db5c 100644 --- a/phpBB/includes/acp/acp_permissions.php +++ b/phpBB/includes/acp/acp_permissions.php @@ -2,9 +2,8 @@  /**  *  * @package acp -* @version $Id$  * @copyright (c) 2005 phpBB Group -* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2  *  */ @@ -23,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'); @@ -50,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;  			} @@ -498,7 +500,7 @@ class acp_permissions  				$template->assign_vars(array(  					'S_FORUM_NAMES'		=> (sizeof($forum_names)) ? true : false, -					'FORUM_NAMES'		=> implode(', ', $forum_names)) +					'FORUM_NAMES'		=> implode($user->lang['COMMA_SEPARATOR'], $forum_names))  				);  			} @@ -513,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) @@ -588,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) @@ -599,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>';  		} @@ -657,7 +659,8 @@ class acp_permissions  	*/  	function set_permissions($mode, $permission_type, &$auth_admin, &$user_id, &$group_id)  	{ -		global $user, $auth; +		global $db, $cache, $user, $auth; +		global $request;  		$psubmit = request_var('psubmit', array(0 => array(0 => 0))); @@ -676,18 +679,17 @@ class acp_permissions  		list($ug_id, ) = each($psubmit);  		list($forum_id, ) = each($psubmit[$ug_id]); -		if (empty($_POST['setting']) || empty($_POST['setting'][$ug_id]) || empty($_POST['setting'][$ug_id][$forum_id]) || !is_array($_POST['setting'][$ug_id][$forum_id])) +		$settings = $request->variable('setting', array(0 => array(0 => array('' => 0))), false, \phpbb\request\request_interface::POST); +		if (empty($settings) || empty($settings[$ug_id]) || empty($settings[$ug_id][$forum_id]))  		{  			trigger_error('WRONG_PERMISSION_SETTING_FORMAT', E_USER_WARNING);  		} -		// We obtain and check $_POST['setting'][$ug_id][$forum_id] directly and not using request_var() because request_var() -		// currently does not support the amount of dimensions required. ;) -		//		$auth_settings = request_var('setting', array(0 => array(0 => array('' => 0)))); -		$auth_settings = array_map('intval', $_POST['setting'][$ug_id][$forum_id]); +		$auth_settings = $settings[$ug_id][$forum_id];  		// Do we have a role we want to set? -		$assigned_role = (isset($_POST['role'][$ug_id][$forum_id])) ? (int) $_POST['role'][$ug_id][$forum_id] : 0; +		$roles = $request->variable('role', array(0 => array(0 => 0)), false, \phpbb\request\request_interface::POST); +		$assigned_role = (isset($roles[$ug_id][$forum_id])) ? (int) $roles[$ug_id][$forum_id] : 0;  		// Do the admin want to set these permissions to other items too?  		$inherit = request_var('inherit', array(0 => array(0))); @@ -727,13 +729,13 @@ class acp_permissions  		// Do we need to recache the moderator lists?  		if ($permission_type == 'm_')  		{ -			cache_moderators(); +			phpbb_cache_moderators($db, $cache, $auth);  		}  		// Remove users who are now moderators or admins from everyones foes list  		if ($permission_type == 'm_' || $permission_type == 'a_')  		{ -			update_foes($group_id, $user_id); +			phpbb_update_foes($db, $auth, $group_id, $user_id);  		}  		$this->log_action($mode, 'add', $permission_type, $ug_type, $ug_id, $forum_id); @@ -746,7 +748,8 @@ class acp_permissions  	*/  	function set_all_permissions($mode, $permission_type, &$auth_admin, &$user_id, &$group_id)  	{ -		global $user, $auth; +		global $db, $cache, $user, $auth; +		global $request;  		// User or group to be set?  		$ug_type = (sizeof($user_id)) ? 'user' : 'group'; @@ -757,8 +760,8 @@ class acp_permissions  			trigger_error($user->lang['NO_AUTH_OPERATION'] . adm_back_link($this->u_action), E_USER_WARNING);  		} -		$auth_settings = (isset($_POST['setting'])) ? $_POST['setting'] : array(); -		$auth_roles = (isset($_POST['role'])) ? $_POST['role'] : array(); +		$auth_settings = $request->variable('setting', array(0 => array(0 => array('' => 0))), false, \phpbb\request\request_interface::POST); +		$auth_roles = $request->variable('role', array(0 => array(0 => 0)), false, \phpbb\request\request_interface::POST);  		$ug_ids = $forum_ids = array();  		// We need to go through the auth settings @@ -794,13 +797,13 @@ class acp_permissions  		// Do we need to recache the moderator lists?  		if ($permission_type == 'm_')  		{ -			cache_moderators(); +			phpbb_cache_moderators($db, $cache, $auth);  		}  		// Remove users who are now moderators or admins from everyones foes list  		if ($permission_type == 'm_' || $permission_type == 'a_')  		{ -			update_foes($group_id, $user_id); +			phpbb_update_foes($db, $auth, $group_id, $user_id);  		}  		$this->log_action($mode, 'add', $permission_type, $ug_type, $ug_ids, $forum_ids); @@ -858,7 +861,7 @@ class acp_permissions  	*/  	function remove_permissions($mode, $permission_type, &$auth_admin, &$user_id, &$group_id, &$forum_id)  	{ -		global $user, $db, $auth; +		global $user, $db, $cache, $auth;  		// User or group to be set?  		$ug_type = (sizeof($user_id)) ? 'user' : 'group'; @@ -874,7 +877,7 @@ class acp_permissions  		// Do we need to recache the moderator lists?  		if ($permission_type == 'm_')  		{ -			cache_moderators(); +			phpbb_cache_moderators($db, $cache, $auth);  		}  		$this->log_action($mode, 'del', $permission_type, $ug_type, (($ug_type == 'user') ? $user_id : $group_id), (sizeof($forum_id) ? $forum_id : array(0 => 0))); @@ -952,12 +955,7 @@ class acp_permissions  		if ($user_id != $user->data['user_id'])  		{ -			$sql = 'SELECT user_id, username, user_permissions, user_type -				FROM ' . USERS_TABLE . ' -				WHERE user_id = ' . $user_id; -			$result = $db->sql_query($sql); -			$userdata = $db->sql_fetchrow($result); -			$db->sql_freeresult($result); +			$userdata = $auth->obtain_user_data($user_id);  		}  		else  		{ @@ -984,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, @@ -1105,7 +1103,7 @@ class acp_permissions  		{  			if ($user_id != $user->data['user_id'])  			{ -				$auth2 = new auth(); +				$auth2 = new \phpbb\auth\auth();  				$auth2->acl($userdata);  				$auth_setting = $auth2->acl_get($permission);  			} @@ -1172,7 +1170,7 @@ class acp_permissions  	*/  	function copy_forum_permissions()  	{ -		global $auth, $cache, $template, $user; +		global $db, $auth, $cache, $template, $user;  		$user->add_lang('acp/forums'); @@ -1187,7 +1185,7 @@ class acp_permissions  			{  				if (copy_forum_permissions($src, $dest))  				{ -					cache_moderators(); +					phpbb_cache_moderators($db, $cache, $auth);  					$auth->acl_clear_prefetch();  					$cache->destroy('sql', FORUMS_TABLE); @@ -1311,5 +1309,3 @@ class acp_permissions  		);  	}  } - -?>
\ No newline at end of file  | 
