[ Index ] |
PHP Cross Reference of phpBB-3.1.12-deutsch |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * 4 * This file is part of the phpBB Forum Software package. 5 * 6 * @copyright (c) phpBB Limited <https://www.phpbb.com> 7 * @license GNU General Public License, version 2 (GPL-2.0) 8 * 9 * For full copyright and license information, please see 10 * the docs/CREDITS.txt file. 11 * 12 */ 13 14 /** 15 * @ignore 16 */ 17 if (!defined('IN_PHPBB')) 18 { 19 exit; 20 } 21 22 /** 23 * ucp_activate 24 * User activation 25 */ 26 class ucp_activate 27 { 28 var $u_action; 29 30 function main($id, $mode) 31 { 32 global $config, $phpbb_root_path, $phpEx; 33 global $db, $user, $auth, $template, $phpbb_container, $phpbb_dispatcher; 34 35 $user_id = request_var('u', 0); 36 $key = request_var('k', ''); 37 38 $sql = 'SELECT user_id, username, user_type, user_email, user_newpasswd, user_lang, user_notify_type, user_actkey, user_inactive_reason 39 FROM ' . USERS_TABLE . " 40 WHERE user_id = $user_id"; 41 $result = $db->sql_query($sql); 42 $user_row = $db->sql_fetchrow($result); 43 $db->sql_freeresult($result); 44 45 if (!$user_row) 46 { 47 trigger_error('NO_USER'); 48 } 49 50 if ($user_row['user_type'] <> USER_INACTIVE && !$user_row['user_newpasswd']) 51 { 52 meta_refresh(3, append_sid("{$phpbb_root_path}index.$phpEx")); 53 trigger_error('ALREADY_ACTIVATED'); 54 } 55 56 if ($user_row['user_inactive_reason'] == INACTIVE_MANUAL || $user_row['user_actkey'] !== $key) 57 { 58 trigger_error('WRONG_ACTIVATION'); 59 } 60 61 // Do not allow activating by non administrators when admin activation is on 62 // Only activation type the user should be able to do is INACTIVE_REMIND 63 // or activate a new password which is not an activation state :@ 64 if (!$user_row['user_newpasswd'] && $user_row['user_inactive_reason'] != INACTIVE_REMIND && $config['require_activation'] == USER_ACTIVATION_ADMIN && !$auth->acl_get('a_user')) 65 { 66 if (!$user->data['is_registered']) 67 { 68 login_box('', $user->lang['NO_AUTH_OPERATION']); 69 } 70 trigger_error('NO_AUTH_OPERATION'); 71 } 72 73 $update_password = ($user_row['user_newpasswd']) ? true : false; 74 75 if ($update_password) 76 { 77 $sql_ary = array( 78 'user_actkey' => '', 79 'user_password' => $user_row['user_newpasswd'], 80 'user_newpasswd' => '', 81 'user_login_attempts' => 0, 82 ); 83 84 $sql = 'UPDATE ' . USERS_TABLE . ' 85 SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' 86 WHERE user_id = ' . $user_row['user_id']; 87 $db->sql_query($sql); 88 89 add_log('user', $user_row['user_id'], 'LOG_USER_NEW_PASSWORD', $user_row['username']); 90 } 91 92 if (!$update_password) 93 { 94 include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx); 95 96 user_active_flip('activate', $user_row['user_id']); 97 98 $sql = 'UPDATE ' . USERS_TABLE . " 99 SET user_actkey = '' 100 WHERE user_id = {$user_row['user_id']}"; 101 $db->sql_query($sql); 102 103 // Create the correct logs 104 add_log('user', $user_row['user_id'], 'LOG_USER_ACTIVE_USER'); 105 if ($auth->acl_get('a_user')) 106 { 107 add_log('admin', 'LOG_USER_ACTIVE', $user_row['username']); 108 } 109 } 110 111 if ($config['require_activation'] == USER_ACTIVATION_ADMIN && !$update_password) 112 { 113 $phpbb_notifications = $phpbb_container->get('notification_manager'); 114 $phpbb_notifications->delete_notifications('notification.type.admin_activate_user', $user_row['user_id']); 115 116 include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx); 117 118 $messenger = new messenger(false); 119 120 $messenger->template('admin_welcome_activated', $user_row['user_lang']); 121 122 $messenger->set_addresses($user_row); 123 124 $messenger->anti_abuse_headers($config, $user); 125 126 $messenger->assign_vars(array( 127 'USERNAME' => htmlspecialchars_decode($user_row['username'])) 128 ); 129 130 $messenger->send($user_row['user_notify_type']); 131 132 $message = 'ACCOUNT_ACTIVE_ADMIN'; 133 } 134 else 135 { 136 if (!$update_password) 137 { 138 $message = ($user_row['user_inactive_reason'] == INACTIVE_PROFILE) ? 'ACCOUNT_ACTIVE_PROFILE' : 'ACCOUNT_ACTIVE'; 139 } 140 else 141 { 142 $message = 'PASSWORD_ACTIVATED'; 143 } 144 } 145 146 /** 147 * This event can be used to modify data after user account's activation 148 * 149 * @event core.ucp_activate_after 150 * @var array user_row Array with some user data 151 * @var string message Language string of the message that will be displayed to the user 152 * @since 3.1.6-RC1 153 */ 154 $vars = array('user_row', 'message'); 155 extract($phpbb_dispatcher->trigger_event('core.ucp_activate_after', compact($vars))); 156 157 meta_refresh(3, append_sid("{$phpbb_root_path}index.$phpEx")); 158 trigger_error($user->lang[$message]); 159 } 160 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Jan 11 00:25:41 2018 | Cross-referenced by PHPXref 0.7.1 |