diff options
Diffstat (limited to 'phpBB/includes/functions_user.php')
| -rw-r--r-- | phpBB/includes/functions_user.php | 65 | 
1 files changed, 43 insertions, 22 deletions
| diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php index dba6d3d6c2..0dd1708c55 100644 --- a/phpBB/includes/functions_user.php +++ b/phpBB/includes/functions_user.php @@ -143,7 +143,7 @@ function user_update_name($old_name, $new_name)  	* @event core.update_username  	* @var	string	old_name	The old username that is replaced  	* @var	string	new_name	The new username -	* @since 3.1-A1 +	* @since 3.1.0-a1  	*/  	$vars = array('old_name', 'new_name');  	extract($phpbb_dispatcher->trigger_event('core.update_username', compact($vars))); @@ -162,7 +162,7 @@ function user_update_name($old_name, $new_name)  function user_add($user_row, $cp_data = false)  {  	global $db, $user, $auth, $config, $phpbb_root_path, $phpEx; -	global $phpbb_dispatcher; +	global $phpbb_dispatcher, $phpbb_container;  	if (empty($user_row['username']) || !isset($user_row['group_id']) || !isset($user_row['user_email']) || !isset($user_row['user_type']))  	{ @@ -210,8 +210,6 @@ function user_add($user_row, $cp_data = false)  		'user_lastpage'			=> '',  		'user_posts'			=> 0,  		'user_colour'			=> '', -		'user_occ'				=> '', -		'user_interests'		=> '',  		'user_avatar'			=> '',  		'user_avatar_type'		=> '',  		'user_avatar_width'		=> 0, @@ -261,7 +259,7 @@ function user_add($user_row, $cp_data = false)  	*  	* @event core.user_add_modify_data  	* @var array	sql_ary		Array of data to be inserted when a user is added -	* @since 3.1-A1 +	* @since 3.1.0-a1  	*/  	$vars = array('sql_ary');  	extract($phpbb_dispatcher->trigger_event('core.user_add_modify_data', compact($vars))); @@ -276,12 +274,7 @@ function user_add($user_row, $cp_data = false)  	{  		$cp_data['user_id'] = (int) $user_id; -		if (!class_exists('custom_profile')) -		{ -			include_once($phpbb_root_path . 'includes/functions_profile_fields.' . $phpEx); -		} - -		$cp = new custom_profile(); +		$cp = $phpbb_container->get('profilefields.manager');  		$sql = 'INSERT INTO ' . PROFILE_FIELDS_DATA_TABLE . ' ' .  			$db->sql_build_array('INSERT', $cp->build_insert_sql_array($cp_data));  		$db->sql_query($sql); @@ -393,7 +386,7 @@ function user_delete($mode, $user_ids, $retain_username = true)  	* @var	array	user_ids	IDs of the deleted user  	* @var	mixed	retain_username	True if username should be retained  	*				or false if not -	* @since 3.1-A1 +	* @since 3.1.0-a1  	*/  	$vars = array('mode', 'user_ids', 'retain_username');  	extract($phpbb_dispatcher->trigger_event('core.delete_user_before', compact($vars))); @@ -622,7 +615,7 @@ function user_delete($mode, $user_ids, $retain_username = true)  	* @var	array	user_ids	IDs of the deleted user  	* @var	mixed	retain_username	True if username should be retained  	*				or false if not -	* @since 3.1-A1 +	* @since 3.1.0-a1  	*/  	$vars = array('mode', 'user_ids', 'retain_username');  	extract($phpbb_dispatcher->trigger_event('core.delete_user_after', compact($vars))); @@ -1333,9 +1326,18 @@ function validate_data($data, $val_ary)  		{  			$function = array_shift($validate);  			array_unshift($validate, $data[$var]); -			$function_prefix = (function_exists('phpbb_validate_' . $function)) ? 'phpbb_validate_' : 'validate_'; -			if ($result = call_user_func_array($function_prefix . $function, $validate)) +			if (is_array($function)) +			{ +				$result = call_user_func_array(array($function[0], 'validate_' . $function[1]), $validate); +			} +			else +			{ +				$function_prefix = (function_exists('phpbb_validate_' . $function)) ? 'phpbb_validate_' : 'validate_'; +				$result = call_user_func_array($function_prefix . $function, $validate); +			} + +			if ($result)  			{  				// Since errors are checked later for their language file existence, we need to make sure custom errors are not adjusted.  				$error[] = (empty($user->lang[$result . '_' . strtoupper($var)])) ? $result : $result . '_' . strtoupper($var); @@ -2084,7 +2086,6 @@ function get_avatar_filename($avatar_entry)  {  	global $config; -  	if ($avatar_entry[0] === 'g')  	{  		$avatar_group = true; @@ -2511,7 +2512,7 @@ function group_delete($group_id, $group_name = false)  	* @event core.delete_group_after  	* @var	int		group_id	ID of the deleted group  	* @var	string	group_name	Name of the deleted group -	* @since 3.1-A1 +	* @since 3.1.0-a1  	*/  	$vars = array('group_id', 'group_name');  	extract($phpbb_dispatcher->trigger_event('core.delete_group_after', compact($vars))); @@ -2759,7 +2760,7 @@ function group_user_del($group_id, $user_id_ary = false, $username_ary = false,  	* @var	string	group_name		Name of the group  	* @var	array	user_id_ary		IDs of the users which are removed  	* @var	array	username_ary	names of the users which are removed -	* @since 3.1-A1 +	* @since 3.1.0-a1  	*/  	$vars = array('group_id', 'group_name', 'user_id_ary', 'username_ary');  	extract($phpbb_dispatcher->trigger_event('core.group_delete_user_before', compact($vars))); @@ -3205,7 +3206,7 @@ function group_set_user_default($group_id, $user_id_ary, $group_attributes = fal  	* @var	array	group_attributes	Group attributes which were changed  	* @var	array	update_listing		Update the list of moderators and foes  	* @var	array	sql_ary				User attributes which were changed -	* @since 3.1-A1 +	* @since 3.1.0-a1  	*/  	$vars = array('group_id', 'user_id_ary', 'group_attributes', 'update_listing', 'sql_ary');  	extract($phpbb_dispatcher->trigger_event('core.user_set_default_group', compact($vars))); @@ -3454,9 +3455,12 @@ function remove_newly_registered($user_id, $user_data = false)  *  * @param array $user_ids Array of users' ids to check for banning,  *						leave empty to get complete list of banned ids +* @param bool|int $ban_end Bool True to get users currently banned +* 						Bool False to only get permanently banned users +* 						Int Unix timestamp to get users banned until that time  * @return array	Array of banned users' ids if any, empty array otherwise  */ -function phpbb_get_banned_user_ids($user_ids = array()) +function phpbb_get_banned_user_ids($user_ids = array(), $ban_end = true)  {  	global $db; @@ -3468,9 +3472,26 @@ function phpbb_get_banned_user_ids($user_ids = array())  	$sql = 'SELECT ban_userid  		FROM ' . BANLIST_TABLE . "  		WHERE $sql_user_ids -			AND ban_exclude <> 1 -			AND (ban_end > " . time() . ' +			AND ban_exclude <> 1"; + +	if ($ban_end === true) +	{ +		// Banned currently +		$sql .= " AND (ban_end > " . time() . ' +				OR ban_end = 0)'; +	} +	else if ($ban_end === false) +	{ +		// Permanently banned +		$sql .= " AND ban_end = 0"; +	} +	else +	{ +		// Banned until a specified time +		$sql .= " AND (ban_end > " . (int) $ban_end . '  				OR ban_end = 0)'; +	} +  	$result = $db->sql_query($sql);  	while ($row = $db->sql_fetchrow($result))  	{ | 
