From 9c2cde7dfde6c11616aadbaf519c997ebb56026d Mon Sep 17 00:00:00 2001 From: Meik Sievertsen Date: Sat, 29 Jan 2005 11:29:35 +0000 Subject: [PATCH] put user into appropiate group after activating his account git-svn-id: file:///svn/phpbb/trunk@5086 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/includes/functions_user.php | 18 ++++++++--- phpBB/includes/ucp/ucp_activate.php | 24 +++++++++------ phpBB/includes/ucp/ucp_register.php | 48 +++++++++++------------------ phpBB/language/en/ucp.php | 1 + phpBB/memberlist.php | 2 +- 5 files changed, 49 insertions(+), 44 deletions(-) diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php index 9791490cf6..076d617e6b 100644 --- a/phpBB/includes/functions_user.php +++ b/phpBB/includes/functions_user.php @@ -249,10 +249,20 @@ function user_active_flip($user_id, $user_type, $user_actkey = false, $username AND group_id = " . $group_id_ary[$group_name]; $db->sql_query($sql); - $sql_update = ($group_id == $group_id_ary[$group_name]) ? ", group_id = $new_group_id" : ''; - $sql_update .= ($user_actkey) ? ", user_actkey = '$user_actkey'" : ''; - $sql = 'UPDATE ' . USERS_TABLE . ' - SET user_type = ' . (($user_type == USER_NORMAL) ? USER_INACTIVE : USER_NORMAL) . "$sql_update + $sql_ary = array( + 'user_type' => ($user_type == USER_NORMAL) ? USER_INACTIVE : USER_NORMAL + ); + + if ($group_id == $group_id_ary[$group_name]) + { + $sql_ary['group_id'] = $new_group_id; + } + + if ($user_actkey !== false) + { + $sql_ary['user_actkey'] = $user_actkey; + } + $sql = 'UPDATE ' . USERS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . " WHERE user_id = $user_id"; $db->sql_query($sql); diff --git a/phpBB/includes/ucp/ucp_activate.php b/phpBB/includes/ucp/ucp_activate.php index 0892ebbb08..f7d069e5de 100644 --- a/phpBB/includes/ucp/ucp_activate.php +++ b/phpBB/includes/ucp/ucp_activate.php @@ -44,22 +44,28 @@ class ucp_activate extends module $update_password = ($row['user_newpasswd']) ? true : false; - $sql_ary = array( - 'user_type' => USER_NORMAL, - 'user_actkey' => '' - ); - if ($update_password) { - $sql_ary += array( + $sql_ary = array( + 'user_type' => USER_NORMAL, + 'user_actkey' => '', 'user_password' => $row['user_newpasswd'], 'user_newpasswd' => '' ); + + $sql = 'UPDATE ' . USERS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' + WHERE user_id = ' . $row['user_id']; + $result = $db->sql_query($sql); } - $sql = 'UPDATE ' . USERS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' - WHERE user_id = ' . $row['user_id']; - $result = $db->sql_query($sql); + // TODO: check for group membership after password update... active_flip there too + if (!$update_password) + { + // Now we need to demote the user from the inactive group and add him to the registered group + + include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx); + user_active_flip($row['user_id'], $row['user_type'], '', $row['username']); + } if ($config['require_activation'] == USER_ACTIVATION_ADMIN && !$update_password) { diff --git a/phpBB/includes/ucp/ucp_register.php b/phpBB/includes/ucp/ucp_register.php index 91f0722317..6dc10877fd 100644 --- a/phpBB/includes/ucp/ucp_register.php +++ b/phpBB/includes/ucp/ucp_register.php @@ -59,11 +59,11 @@ class ucp_register extends module 'L_COPPA_NO' => sprintf($user->lang['UCP_COPPA_BEFORE'], $coppa_birthday), 'L_COPPA_YES' => sprintf($user->lang['UCP_COPPA_ON_AFTER'], $coppa_birthday), - 'U_COPPA_NO' => "ucp.$phpEx$SID&mode=register&coppa=0", - 'U_COPPA_YES' => "ucp.$phpEx$SID&mode=register&coppa=1", + 'U_COPPA_NO' => "{$phpbb_root_path}ucp.$phpEx$SID&mode=register&coppa=0", + 'U_COPPA_YES' => "{$phpbb_root_path}ucp.$phpEx$SID&mode=register&coppa=1", 'S_SHOW_COPPA' => true, - 'S_REGISTER_ACTION' => "ucp.$phpEx$SID&mode=register") + 'S_REGISTER_ACTION' => "{$phpbb_root_path}ucp.$phpEx$SID&mode=register") ); } else @@ -72,28 +72,28 @@ class ucp_register extends module 'L_AGREEMENT' => $user->lang['UCP_AGREEMENT'], 'S_SHOW_COPPA' => false, - 'S_REGISTER_ACTION' => "ucp.$phpEx$SID&mode=register") + 'S_REGISTER_ACTION' => "{$phpbb_root_path}ucp.$phpEx$SID&mode=register") ); } $this->display($user->lang['REGISTER'], 'ucp_agreement.html'); } + $var_ary = array( + 'username' => (string) '', + 'password_confirm' => (string) '', + 'new_password' => (string) '', + 'cur_password' => (string) '', + 'email' => (string) '', + 'email_confirm' => (string) '', + 'confirm_code' => (string) '', + 'lang' => (string) $config['default_lang'], + 'tz' => (float) $config['board_timezone'], + ); + // If we change the language inline, we do not want to display errors, but pre-fill already filled out values if ($change_lang) { - $var_ary = array( - 'username' => (string) '', - 'password_confirm' => (string) '', - 'new_password' => (string) '', - 'cur_password' => (string) '', - 'email' => (string) '', - 'email_confirm' => (string) '', - 'confirm_code' => (string) '', - 'lang' => (string) $config['default_lang'], - 'tz' => (float) $config['board_timezone'], - ); - foreach ($var_ary as $var => $default) { $$var = request_var($var, $default); @@ -103,18 +103,6 @@ class ucp_register extends module // Check and initialize some variables if needed if ($submit) { - $var_ary = array( - 'username' => (string) '', - 'password_confirm' => (string) '', - 'new_password' => (string) '', - 'cur_password' => (string) '', - 'email' => (string) '', - 'email_confirm' => (string) '', - 'confirm_code' => (string) '', - 'lang' => (string) $config['default_lang'], - 'tz' => (float) $config['board_timezone'], - ); - foreach ($var_ary as $var => $default) { $data[$var] = request_var($var, $default); @@ -369,11 +357,11 @@ class ucp_register extends module } } - if ($config['require_activation'] == USER_ACTIVATION_NONE || !$config['email_enable']) + if ($user_type == USER_NORMAL || !$config['email_enable']) { set_config('newest_user_id', $user_id); set_config('newest_username', $username); - set_config('num_users', $config['num_users'] + 1, TRUE); + set_config('num_users', $config['num_users'] + 1, true); } unset($data); diff --git a/phpBB/language/en/ucp.php b/phpBB/language/en/ucp.php index bcfa4b589b..cb9f684700 100644 --- a/phpBB/language/en/ucp.php +++ b/phpBB/language/en/ucp.php @@ -127,6 +127,7 @@ $lang += array( 'EMAIL_INVALID_EMAIL' => 'The email address you entered is invalid.', 'EMAIL_REMIND' => 'This must be the email address you supplied when registering.', 'EMAIL_PM' => 'Email PM', + 'EMAIL_TAKEN_EMAIL' => 'The entered email address is already in use', 'EMPTY_DRAFT' => 'You must enter a message to submit your changes', 'EMPTY_DRAFT_TITLE' => 'You must enter a draft title', 'EXPORT_AS_XML' => 'Export as XML', diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index 2bd6ed0911..c9a5b3fb3d 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -648,7 +648,7 @@ switch ($mode) // Additional sorting options for user search ... if search is enabled, if not // then only admins can make use of this (for ACP functionality) - $sql_where = ''; + $sql_where = $form = $field = ''; if ($mode == 'searchuser' && ($config['load_search'] || $auth->acl_get('a_'))) { $form = request_var('form', '');