Reset login attempts on new password activation. Prevents "first failed login attempt...
[phpbb.git] / phpBB / includes / ucp / ucp_activate.php
blob5db9fd5bd1671e05ed8e019f77350581a680c285
1 <?php
2 /**
4 * @package ucp
5 * @version $Id$
6 * @copyright (c) 2005 phpBB Group
7 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
9 */
11 /**
12 * @ignore
14 if (!defined('IN_PHPBB'))
16 exit;
19 /**
20 * ucp_activate
21 * User activation
22 * @package ucp
24 class ucp_activate
26 var $u_action;
28 function main($id, $mode)
30 global $db, $user, $auth, $template, $config;
32 $user_id = request_var('u', 0);
33 $key = request_var('k', '');
35 $sql = 'SELECT user_id, username, user_type, user_email, user_newpasswd, user_lang, user_notify_type, user_actkey, user_inactive_reason
36 FROM ' . USERS_TABLE . "
37 WHERE user_id = $user_id";
38 $result = $db->sql_query($sql);
39 $user_row = $db->sql_fetchrow($result);
40 $db->sql_freeresult($result);
42 if (!$user_row)
44 trigger_error('NO_USER');
47 if ($user_row['user_type'] <> USER_INACTIVE && !$user_row['user_newpasswd'])
49 meta_refresh(3, append_sid('index'));
50 trigger_error('ALREADY_ACTIVATED');
53 if ($user_row['user_actkey'] != $key)
55 trigger_error('WRONG_ACTIVATION');
58 $update_password = ($user_row['user_newpasswd']) ? true : false;
60 if ($update_password)
62 $sql_ary = array(
63 'user_actkey' => '',
64 'user_password' => $user_row['user_newpasswd'],
65 'user_newpasswd' => '',
66 'user_pass_convert' => 0,
67 'user_login_attempts' => 0,
70 $sql = 'UPDATE ' . USERS_TABLE . '
71 SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
72 WHERE user_id = ' . $user_row['user_id'];
73 $db->sql_query($sql);
76 if (!$update_password)
78 include_once(PHPBB_ROOT_PATH . 'includes/functions_user.' . PHP_EXT);
80 user_active_flip('activate', $user_row['user_id']);
82 $sql = 'UPDATE ' . USERS_TABLE . "
83 SET user_actkey = ''
84 WHERE user_id = {$user_row['user_id']}";
85 $db->sql_query($sql);
88 if ($config['require_activation'] == USER_ACTIVATION_ADMIN && !$update_password)
90 include_once(PHPBB_ROOT_PATH . 'includes/functions_messenger.' . PHP_EXT);
92 $messenger = new messenger(false);
94 $messenger->template('admin_welcome_activated', $user_row['user_lang']);
96 $messenger->to($user_row['user_email'], $user_row['username']);
98 $messenger->headers('X-AntiAbuse: Board servername - ' . $config['server_name']);
99 $messenger->headers('X-AntiAbuse: User_id - ' . $user->data['user_id']);
100 $messenger->headers('X-AntiAbuse: Username - ' . $user->data['username']);
101 $messenger->headers('X-AntiAbuse: User IP - ' . $user->ip);
103 $messenger->assign_vars(array(
104 'USERNAME' => htmlspecialchars_decode($user_row['username']))
107 $messenger->send($user_row['user_notify_type']);
109 $message = 'ACCOUNT_ACTIVE_ADMIN';
111 else
113 if (!$update_password)
115 $message = ($user_row['user_inactive_reason'] == INACTIVE_PROFILE) ? 'ACCOUNT_ACTIVE_PROFILE' : 'ACCOUNT_ACTIVE';
117 else
119 $message = 'PASSWORD_ACTIVATED';
123 meta_refresh(3, append_sid('index'));
124 trigger_error($user->lang[$message]);