public function createUserHandle($email, $username, $password, $verified, $custom_register_fields, $profile, &$errors) { global $sourcedir, $context, $modSettings, $maintenance, $mmessage, $scripturl; checkSession(); $_POST['emailActivate'] = true; if (empty($password)) { get_error('password cannot be empty'); } if (!($maintenance == 0)) { get_error('Forum is in maintenance model or Tapatalk is disabled by forum administrator.'); } if ($modSettings['registration_method'] == 0) { $register_mode = 'nothing'; } else { if ($modSettings['registration_method'] == 1) { $register_mode = $verified ? 'nothing' : 'activation'; } else { $register_mode = isset($modSettings['auto_approval_tp_user']) && $modSettings['auto_approval_tp_user'] && $verified ? 'nothing' : 'approval'; } } $email = htmltrim__recursive(str_replace(array("\n", "\r"), '', $email)); $username = htmltrim__recursive(str_replace(array("\n", "\r"), '', $username)); $password = htmltrim__recursive(str_replace(array("\n", "\r"), '', $password)); $group = 0; if ($register_mode == 'nothing' && isset($modSettings['tp_iar_usergroup_assignment'])) { $group = $modSettings['tp_iar_usergroup_assignment']; } $regOptions = array('interface' => $register_mode == 'approval' ? 'guest' : 'admin', 'username' => $username, 'email' => $email, 'password' => $password, 'password_check' => $password, 'check_reserved_name' => true, 'check_password_strength' => true, 'check_email_ban' => false, 'send_welcome_email' => isset($_POST['emailPassword']) || empty($password), 'require' => $register_mode, 'memberGroup' => (int) $group); define('mobi_register', 1); require_once $sourcedir . '/Subs-Members.php'; $memberID = registerMember($regOptions); if (!empty($memberID)) { $context['new_member'] = array('id' => $memberID, 'name' => $username, 'href' => $scripturl . '?action=profile;u=' . $memberID, 'link' => '<a href="' . $scripturl . '?action=profile;u=' . $memberID . '">' . $username . '</a>'); $context['registration_done'] = sprintf($txt['admin_register_done'], $context['new_member']['link']); //update profile if (isset($profile) && !empty($profile) && is_array($profile)) { $profile_vars = array('avatar' => $profile['avatar_url']); updateMemberData($memberID, $profile_vars); } return get_user_by_name_or_email($username, false); } return null; }
function action_activate_account() { global $modSettings, $context, $txt, $sourcedir; loadLanguage('Login'); loadTemplate('Login'); $_POST['activate_result'] = false; if (empty($modSettings['registration_method']) || $modSettings['registration_method'] == 3) { $_POST['activate_status'] = 5; //registration_not_approvaed $_POST['activate_result_text'] = $txt['no_access']; return; } if ($modSettings['registration_method'] == 2) { $_POST['activate_status'] = 5; //registration_not_approvaed $_POST['activate_result_text'] = $txt['approval_after_registration']; return; } $email_response = getEmailFromScription($_POST['token'], $_POST['code'], $modSettings['tp_push_key']); if (empty($email_response)) { $_POST['activate_status'] = 4; //tapatalk authorization verify failed return; } if (!isset($email_response['email']) || empty($email_response['email'])) { $_POST['activate_status'] = 4; //tapatalk authorization verify failed return; } if (isset($email_response['inactive']) && !empty($email_response['inactive'])) { $_POST['activate_status'] = 2; //tapatalk id is not active return; } $user = get_user_by_name_or_email($_POST['email'], true); if (empty($user)) { $_POST['activate_status'] = 1; //account does not exist return; } if ($_POST['email'] != $email_response['email']) { $_POST['activate_status'] = 3; //account does not match return; } if (!empty($user['is_activated'])) { $_POST['activate_result'] = true; //already activated return; } if ($user['validation_code'] === '') { $_POST['activate_status'] = 5; //registration_not_approvaed $_POST['activate_result_text'] = $txt['registration_not_approved']; return; } try { // Let the integration know that they've been activated! call_integration_hook('integrate_activate', array($user['member_name'])); // Validation complete - update the database! updateMemberData($user['id_member'], array('is_activated' => 1, 'validation_code' => '')); // Also do a proper member stat re-evaluation. updateStats('member', false); require_once $sourcedir . '/Subs-Post.php'; adminNotify('activation', $user['id_member'], $user['member_name']); $context += array('page_title' => $txt['registration_successful'], 'sub_template' => 'login', 'default_username' => $user['member_name'], 'default_password' => '', 'never_expire' => false, 'description' => $txt['activate_success']); $_POST['activate_result'] = true; } catch (Exception $e) { $_POST['activate_status'] = 5; //registration_not_approvaed $_POST['activate_result_text'] = $e->getMessage(); return; } }