diff options
Diffstat (limited to 'phpBB/includes/ucp/ucp_profile.php')
| -rw-r--r-- | phpBB/includes/ucp/ucp_profile.php | 229 | 
1 files changed, 129 insertions, 100 deletions
| diff --git a/phpBB/includes/ucp/ucp_profile.php b/phpBB/includes/ucp/ucp_profile.php index 0be1930f1a..a86c4f2672 100644 --- a/phpBB/includes/ucp/ucp_profile.php +++ b/phpBB/includes/ucp/ucp_profile.php @@ -31,14 +31,12 @@ class ucp_profile  	function main($id, $mode)  	{ -		global $cache, $config, $db, $user, $auth, $template, $phpbb_root_path, $phpEx; -		global $request, $phpbb_container, $phpbb_dispatcher; +		global $config, $db, $user, $auth, $template, $phpbb_root_path, $phpEx; +		global $request, $phpbb_container, $phpbb_log, $phpbb_dispatcher;  		$user->add_lang('posting'); -		$preview	= $request->variable('preview', false, false, \phpbb\request\request_interface::POST);  		$submit		= $request->variable('submit', false, false, \phpbb\request\request_interface::POST); -		$delete		= $request->variable('delete', false, false, \phpbb\request\request_interface::POST);  		$error = $data = array();  		$s_hidden_fields = ''; @@ -47,8 +45,8 @@ class ucp_profile  			case 'reg_details':  				$data = array( -					'username'			=> utf8_normalize_nfc(request_var('username', $user->data['username'], true)), -					'email'				=> strtolower(request_var('email', $user->data['user_email'])), +					'username'			=> $request->variable('username', $user->data['username'], true), +					'email'				=> strtolower($request->variable('email', $user->data['user_email'])),  					'new_password'		=> $request->variable('new_password', '', true),  					'cur_password'		=> $request->variable('cur_password', '', true),  					'password_confirm'	=> $request->variable('password_confirm', '', true), @@ -96,6 +94,7 @@ class ucp_profile  					}  					// Instantiate passwords manager +					/* @var $passwords_manager \phpbb\passwords\manager */  					$passwords_manager = $phpbb_container->get('passwords.manager');  					// Only check the new password against the previous password if there have been no errors @@ -139,18 +138,30 @@ class ucp_profile  						if ($auth->acl_get('u_chgname') && $config['allow_namechange'] && $data['username'] != $user->data['username'])  						{ -							add_log('user', $user->data['user_id'], 'LOG_USER_UPDATE_NAME', $user->data['username'], $data['username']); +							$phpbb_log->add('user', $user->data['user_id'], $user->ip, 'LOG_USER_UPDATE_NAME', false, array( +								'reportee_id' => $user->data['user_id'], +								$user->data['username'], +								$data['username'] +							));  						}  						if ($auth->acl_get('u_chgpasswd') && $data['new_password'] && !$passwords_manager->check($data['new_password'], $user->data['user_password']))  						{  							$user->reset_login_keys(); -							add_log('user', $user->data['user_id'], 'LOG_USER_NEW_PASSWORD', $data['username']); +							$phpbb_log->add('user', $user->data['user_id'], $user->ip, 'LOG_USER_NEW_PASSWORD', false, array( +								'reportee_id' => $user->data['user_id'], +								$user->data['username'] +							));  						}  						if ($auth->acl_get('u_chgemail') && $data['email'] != $user->data['user_email'])  						{ -							add_log('user', $user->data['user_id'], 'LOG_USER_UPDATE_EMAIL', $data['username'], $user->data['user_email'], $data['email']); +							$phpbb_log->add('user', $user->data['user_id'], $user->ip, 'LOG_USER_UPDATE_EMAIL', false, array( +								'reportee_id' => $user->data['user_id'], +								$user->data['username'], +								$data['user_email'], +								$data['email'] +							));  						}  						$message = 'PROFILE_UPDATED'; @@ -268,15 +279,17 @@ class ucp_profile  				// Do not display profile information panel if not authed to do so  				if (!$auth->acl_get('u_chgprofileinfo'))  				{ +					send_status_line(403, 'Forbidden');  					trigger_error('NO_AUTH_PROFILEINFO');  				} +				/* @var $cp \phpbb\profilefields\manager */  				$cp = $phpbb_container->get('profilefields.manager');  				$cp_data = $cp_error = array();  				$data = array( -					'jabber'		=> utf8_normalize_nfc(request_var('jabber', $user->data['user_jabber'], true)), +					'jabber'		=> $request->variable('jabber', $user->data['user_jabber'], true),  				);  				if ($config['allow_birthdays']) @@ -288,9 +301,9 @@ class ucp_profile  						list($data['bday_day'], $data['bday_month'], $data['bday_year']) = explode('-', $user->data['user_birthday']);  					} -					$data['bday_day'] = request_var('bday_day', $data['bday_day']); -					$data['bday_month'] = request_var('bday_month', $data['bday_month']); -					$data['bday_year'] = request_var('bday_year', $data['bday_year']); +					$data['bday_day'] = $request->variable('bday_day', $data['bday_day']); +					$data['bday_month'] = $request->variable('bday_month', $data['bday_month']); +					$data['bday_year'] = $request->variable('bday_year', $data['bday_year']);  					$data['user_birthday'] = sprintf('%2d-%2d-%4d', $data['bday_day'], $data['bday_month'], $data['bday_year']);  				} @@ -417,7 +430,6 @@ class ucp_profile  						$selected = ($i == $data['bday_month']) ? ' selected="selected"' : '';  						$s_birthday_month_options .= "<option value=\"$i\"$selected>$i</option>";  					} -					$s_birthday_year_options = '';  					$now = getdate();  					$s_birthday_year_options = '<option value="0"' . ((!$data['bday_year']) ? ' selected="selected"' : '') . '>--</option>'; @@ -453,128 +465,142 @@ class ucp_profile  				if (!$auth->acl_get('u_sig'))  				{ +					send_status_line(403, 'Forbidden');  					trigger_error('NO_AUTH_SIGNATURE');  				}  				include($phpbb_root_path . 'includes/functions_posting.' . $phpEx);  				include($phpbb_root_path . 'includes/functions_display.' . $phpEx); -				$enable_bbcode	= ($config['allow_sig_bbcode']) ? (bool) $user->optionget('sig_bbcode') : false; -				$enable_smilies	= ($config['allow_sig_smilies']) ? (bool) $user->optionget('sig_smilies') : false; -				$enable_urls	= ($config['allow_sig_links']) ? (bool) $user->optionget('sig_links') : false; +				$preview	= $request->is_set_post('preview'); -				$signature		= utf8_normalize_nfc(request_var('signature', (string) $user->data['user_sig'], true)); +				$enable_bbcode	= ($config['allow_sig_bbcode']) ? $user->optionget('sig_bbcode') : false; +				$enable_smilies	= ($config['allow_sig_smilies']) ? $user->optionget('sig_smilies') : false; +				$enable_urls	= ($config['allow_sig_links']) ? $user->optionget('sig_links') : false; -				add_form_key('ucp_sig'); +				$decoded_message	= generate_text_for_edit($user->data['user_sig'], $user->data['user_sig_bbcode_uid'], $user->data['user_sig_bbcode_bitfield']); +				$signature			= $request->variable('signature', $decoded_message['text'], true); +				$signature_preview	= '';  				if ($submit || $preview)  				{ -					include($phpbb_root_path . 'includes/message_parser.' . $phpEx); +					$enable_bbcode	= ($config['allow_sig_bbcode']) ? !$request->variable('disable_bbcode', false) : false; +					$enable_smilies	= ($config['allow_sig_smilies']) ? !$request->variable('disable_smilies', false) : false; +					$enable_urls	= ($config['allow_sig_links']) ? !$request->variable('disable_magic_url', false) : false; + +					if (!check_form_key('ucp_sig')) +					{ +						$error[] = 'FORM_INVALID'; +					} +				} + +				/** +				* Modify user signature on editing profile in UCP +				* +				* @event core.ucp_profile_modify_signature +				* @var	bool	enable_bbcode		Whether or not bbcode is enabled +				* @var	bool	enable_smilies		Whether or not smilies are enabled +				* @var	bool	enable_urls			Whether or not urls are enabled +				* @var	string	signature			Users signature text +				* @var	array	error				Any error strings +				* @var	bool	submit				Whether or not the form has been sumitted +				* @var	bool	preview				Whether or not the signature is being previewed +				* @since 3.1.10-RC1 +				* @change 3.2.0-RC2 Removed message parser +				*/ +				$vars = array( +					'enable_bbcode', +					'enable_smilies', +					'enable_urls', +					'signature', +					'error', +					'submit', +					'preview', +				); +				extract($phpbb_dispatcher->trigger_event('core.ucp_profile_modify_signature', compact($vars))); + +				$bbcode_uid = $bbcode_bitfield = $bbcode_flags = ''; +				$warn_msg = generate_text_for_storage( +					$signature, +					$bbcode_uid, +					$bbcode_bitfield, +					$bbcode_flags, +					$enable_bbcode, +					$enable_urls, +					$enable_smilies, +					$config['allow_sig_img'], +					$config['allow_sig_flash'], +					true, +					$config['allow_sig_links'], +					'sig' +				); -					$enable_bbcode	= ($config['allow_sig_bbcode']) ? ((request_var('disable_bbcode', false)) ? false : true) : false; -					$enable_smilies	= ($config['allow_sig_smilies']) ? ((request_var('disable_smilies', false)) ? false : true) : false; -					$enable_urls	= ($config['allow_sig_links']) ? ((request_var('disable_magic_url', false)) ? false : true) : false; +				if (sizeof($warn_msg)) +				{ +					$error += $warn_msg; +				} +				if (!$submit) +				{ +					// Parse it for displaying +					$signature_preview = generate_text_for_display($signature, $bbcode_uid, $bbcode_bitfield, $bbcode_flags); +				} +				else +				{  					if (!sizeof($error))  					{ -						$message_parser = new parse_message($signature); +						$user->optionset('sig_bbcode', $enable_bbcode); +						$user->optionset('sig_smilies', $enable_smilies); +						$user->optionset('sig_links', $enable_urls); + +						$sql_ary = array( +							'user_sig'					=> $signature, +							'user_options'				=> $user->data['user_options'], +							'user_sig_bbcode_uid'		=> $bbcode_uid, +							'user_sig_bbcode_bitfield'	=> $bbcode_bitfield +						);  						/** -						* Modify user signature on editing profile in UCP +						* Modify user registration data before submitting it to the database  						* -						* @event core.ucp_profile_modify_signature -						* @var	bool	enable_bbcode		Whether or not bbcode is enabled -						* @var	bool	enable_smilies		Whether or not smilies are enabled -						* @var	bool	enable_urls			Whether or not urls are enabled -						* @var	string	signature			Users signature text -						* @var	object	message_parser		The message parser object -						* @var	array	error				Any error strings -						* @var	bool	submit				Whether or not the form has been sumitted -						* @var	bool	preview				Whether or not the signature is being previewed +						* @event core.ucp_profile_modify_signature_sql_ary +						* @var	array	sql_ary		Array with user signature data to submit to the database  						* @since 3.1.10-RC1  						*/ -						$vars = array( -							'enable_bbcode', -							'enable_smilies', -							'enable_urls', -							'signature', -							'message_parser', -							'error', -							'submit', -							'preview', -						); -						extract($phpbb_dispatcher->trigger_event('core.ucp_profile_modify_signature', compact($vars))); - -						// Allowing Quote BBCode -						$message_parser->parse($enable_bbcode, $enable_urls, $enable_smilies, $config['allow_sig_img'], $config['allow_sig_flash'], true, $config['allow_sig_links'], true, 'sig'); - -						if (sizeof($message_parser->warn_msg)) -						{ -							$error[] = implode('<br />', $message_parser->warn_msg); -						} - -						if (!check_form_key('ucp_sig')) -						{ -							$error[] = 'FORM_INVALID'; -						} - -						if (!sizeof($error) && $submit) -						{ -							$user->optionset('sig_bbcode', $enable_bbcode); -							$user->optionset('sig_smilies', $enable_smilies); -							$user->optionset('sig_links', $enable_urls); - -							$sql_ary = array( -								'user_sig'					=> (string) $message_parser->message, -								'user_options'				=> $user->data['user_options'], -								'user_sig_bbcode_uid'		=> (string) $message_parser->bbcode_uid, -								'user_sig_bbcode_bitfield'	=> $message_parser->bbcode_bitfield -							); - -							/** -							* Modify user registration data before submitting it to the database -							* -							* @event core.ucp_profile_modify_signature_sql_ary -							* @var	array	sql_ary		Array with user signature data to submit to the database -							* @since 3.1.10-RC1 -							*/ -							$vars = array('sql_ary'); -							extract($phpbb_dispatcher->trigger_event('core.ucp_profile_modify_signature_sql_ary', compact($vars))); +						$vars = array('sql_ary'); +						extract($phpbb_dispatcher->trigger_event('core.ucp_profile_modify_signature_sql_ary', compact($vars))); -							$sql = 'UPDATE ' . USERS_TABLE . ' -								SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' -								WHERE user_id = ' . $user->data['user_id']; -							$db->sql_query($sql); +						$sql = 'UPDATE ' . USERS_TABLE . ' +							SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' +							WHERE user_id = ' . $user->data['user_id']; +						$db->sql_query($sql); -							$message = $user->lang['PROFILE_UPDATED'] . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $this->u_action . '">', '</a>'); -							trigger_error($message); -						} +						$message = $user->lang['PROFILE_UPDATED'] . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $this->u_action . '">', '</a>'); +						trigger_error($message);  					} - -					// Replace "error" strings with their real, localised form -					$error = array_map(array($user, 'lang'), $error);  				} -				$signature_preview = ''; -				if ($preview) +				// Replace "error" strings with their real, localised form +				$error = array_map(array($user, 'lang'), $error); + +				if ($request->is_set_post('preview'))  				{ -					// Now parse it for displaying -					$signature_preview = $message_parser->format_display($enable_bbcode, $enable_urls, $enable_smilies, false); -					unset($message_parser); +					$decoded_message = generate_text_for_edit($signature, $bbcode_uid, $bbcode_flags);  				} -				decode_message($signature, $user->data['user_sig_bbcode_uid']); +				/** @var \phpbb\controller\helper $controller_helper */ +				$controller_helper = $phpbb_container->get('controller.helper');  				$template->assign_vars(array(  					'ERROR'				=> (sizeof($error)) ? implode('<br />', $error) : '', -					'SIGNATURE'			=> $signature, +					'SIGNATURE'			=> $decoded_message['text'],  					'SIGNATURE_PREVIEW'	=> $signature_preview,  					'S_BBCODE_CHECKED' 		=> (!$enable_bbcode) ? ' checked="checked"' : '',  					'S_SMILIES_CHECKED' 	=> (!$enable_smilies) ? ' checked="checked"' : '',  					'S_MAGIC_URL_CHECKED' 	=> (!$enable_urls) ? ' checked="checked"' : '', -					'BBCODE_STATUS'			=> ($config['allow_sig_bbcode']) ? sprintf($user->lang['BBCODE_IS_ON'], '<a href="' . append_sid("{$phpbb_root_path}faq.$phpEx", 'mode=bbcode') . '">', '</a>') : sprintf($user->lang['BBCODE_IS_OFF'], '<a href="' . append_sid("{$phpbb_root_path}faq.$phpEx", 'mode=bbcode') . '">', '</a>'), +					'BBCODE_STATUS'			=> $user->lang(($config['allow_sig_bbcode'] ? 'BBCODE_IS_ON' : 'BBCODE_IS_OFF'), '<a href="' . $controller_helper->route('phpbb_help_bbcode_controller') . '">', '</a>'),  					'SMILIES_STATUS'		=> ($config['allow_sig_smilies']) ? $user->lang['SMILIES_ARE_ON'] : $user->lang['SMILIES_ARE_OFF'],  					'IMG_STATUS'			=> ($config['allow_sig_img']) ? $user->lang['IMAGES_ARE_ON'] : $user->lang['IMAGES_ARE_OFF'],  					'FLASH_STATUS'			=> ($config['allow_sig_flash']) ? $user->lang['FLASH_IS_ON'] : $user->lang['FLASH_IS_OFF'], @@ -590,6 +616,8 @@ class ucp_profile  					'S_LINKS_ALLOWED'		=> ($config['allow_sig_links']) ? true : false)  				); +				add_form_key('ucp_sig'); +  				// Build custom bbcodes array  				display_custom_bbcodes(); @@ -606,6 +634,7 @@ class ucp_profile  				if ($config['allow_avatar'] && $auth->acl_get('u_chgavatar'))  				{ +					/* @var $phpbb_avatar_manager \phpbb\avatar\manager */  					$phpbb_avatar_manager = $phpbb_container->get('avatar.manager');  					$avatar_drivers = $phpbb_avatar_manager->get_enabled_drivers(); @@ -731,7 +760,7 @@ class ucp_profile  				if ($submit)  				{ -					$keys = request_var('keys', array('')); +					$keys = $request->variable('keys', array(''));  					if (!check_form_key('ucp_autologin_keys'))  					{ | 
