Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
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;
    }
}