$updated_user['password'] = $mybb->input['new_password']; $updated_user['password2'] = $mybb->input['confirm_new_password']; } $updated_user['options'] = array("allownotices" => $mybb->input['allownotices'], "hideemail" => $mybb->input['hideemail'], "subscriptionmethod" => $mybb->input['subscriptionmethod'], "invisible" => $mybb->input['invisible'], "dstcorrection" => $mybb->input['dstcorrection'], "threadmode" => $mybb->input['threadmode'], "showsigs" => $mybb->input['showsigs'], "showavatars" => $mybb->input['showavatars'], "showquickreply" => $mybb->input['showquickreply'], "receivepms" => $mybb->input['receivepms'], "receivefrombuddy" => $mybb->input['receivefrombuddy'], "pmnotice" => $mybb->input['pmnotice'], "daysprune" => $mybb->input['daysprune'], "showcodebuttons" => intval($mybb->input['showcodebuttons']), "pmnotify" => $mybb->input['pmnotify'], "showredirect" => $mybb->input['showredirect']); if ($mybb->settings['usertppoptions']) { $updated_user['options']['tpp'] = intval($mybb->input['tpp']); } if ($mybb->settings['userpppoptions']) { $updated_user['options']['ppp'] = intval($mybb->input['ppp']); } // Set the data of the user in the datahandler. $userhandler->set_data($updated_user); $errors = ''; // Validate the user and get any errors that might have occurred. if (!$userhandler->validate_user()) { $errors = $userhandler->get_friendly_errors(); } else { // Are we removing an avatar from this user? if ($mybb->input['remove_avatar']) { $extra_user_updates = array("avatar" => "", "avatardimensions" => "", "avatartype" => ""); remove_avatars($user['uid']); } // Are we uploading a new avatar? if ($_FILES['avatar_upload']['name']) { $avatar = upload_avatar($_FILES['avatar_upload'], $user['uid']); if ($avatar['error']) { $errors = array($avatar['error']); } else { if ($avatar['width'] > 0 && $avatar['height'] > 0) { $avatar_dimensions = $avatar['width'] . "|" . $avatar['height']; }
/** * Registers an user with Facebook data */ public function register($user) { if (!$user) { return false; } global $mybb, $session, $plugins, $lang; require_once MYBB_ROOT . "inc/datahandlers/user.php"; $userhandler = new UserDataHandler("insert"); $plength = 8; if ($mybb->settings['minpasswordlength']) { $plength = (int) $mybb->settings['minpasswordlength']; } $password = random_str($plength); $new_user = array("username" => $user['name'], "password" => $password, "password2" => $password, "email" => $user['email'], "email2" => $user['email'], "usergroup" => (int) $mybb->settings['myfbconnect_usergroup'], "regip" => $session->ipaddress, "longregip" => my_ip2long($session->ipaddress), "options" => array("hideemail" => 1)); /* Registration might fail for custom profile fields required at registration... workaround = IN_ADMINCP defined. Placed straight before the registration process to avoid conflicts with third party plugins messying around with templates (I'm looking at you, PHPTPL) */ define("IN_ADMINCP", 1); $userhandler->set_data($new_user); if ($userhandler->validate_user()) { $user_info = $userhandler->insert_user(); $plugins->run_hooks("member_do_register_end"); // Deliver a welcome PM if ($mybb->settings['myfbconnect_passwordpm']) { require_once MYBB_ROOT . "inc/datahandlers/pm.php"; $pmhandler = new PMDataHandler(); $pmhandler->admin_override = true; // Make sure admins haven't done something bad $fromid = (int) $mybb->settings['myfbconnect_passwordpm_fromid']; if (!$mybb->settings['myfbconnect_passwordpm_fromid'] or !user_exists($mybb->settings['myfbconnect_passwordpm_fromid'])) { $fromid = 0; } $message = $mybb->settings['myfbconnect_passwordpm_message']; $subject = $mybb->settings['myfbconnect_passwordpm_subject']; $thingsToReplace = array("{user}" => $user_info['username'], "{password}" => $password); // Replace what needs to be replaced foreach ($thingsToReplace as $find => $replace) { $message = str_replace($find, $replace, $message); } $pm = array("subject" => $subject, "message" => $message, "fromid" => $fromid, "toid" => array($user_info['uid'])); // Some defaults :) $pm['options'] = array("signature" => 1); $pmhandler->set_data($pm); // Now let the PM handler do all the hard work if ($pmhandler->validate_pm()) { $pmhandler->insert_pm(); } else { error($lang->sprintf($lang->myfbconnect_error_report, $pmhandler->get_friendly_errors())); } } // Post a message on the user's wall if ($mybb->settings['myfbconnect_postonwall']) { $this->post_on_wall($mybb->settings['myfbconnect_postonwall_message']); } // Finally return our new user data return $user_info; } else { return array('error' => $userhandler->get_friendly_errors()); } return true; }
/** * Updates userdata * * @param array $userdata Data of the User (uid is required as index) * @param boolean Return errors as MyBB array or nicely formated? * @return boolean|array */ function updateUser($userdata = array(), $inline_error = true) { // Userdata Array needs to contain the UserID if (!isset($userdata['uid'])) { $this->_errorAndDie('A UserID (Array-Key: <i>uid</i>) is required to update a user'); } require_once MYBB_ROOT . 'inc/functions_user.php'; require_once MYBB_ROOT . 'inc/datahandlers/user.php'; $userhandler = new UserDataHandler('update'); $userhandler->set_data($userdata); if (!$userhandler->validate_user()) { $errors = $userhandler->get_friendly_errors(); return $inline_error === true ? inline_error($errors) : $errors; } $userhandler->update_user(); return true; }
function sign_in_func() { global $db, $lang, $theme, $plugins, $mybb, $session, $settings, $cache, $time, $mybbgroups, $mobiquo_config, $user, $register; // Load global language phrases $lang->load("member"); $parser = new postParser(); $token = trim($_POST['token']); $code = trim($_POST['code']); $username = $mybb->input['username']; $password = $mybb->input['password']; $post_email = $mybb->input['email']; $status = ''; if (!empty($token) && !empty($code)) { $result = tt_register_verify($token, $code); if ($result->result && !empty($result->email)) { $email = $result->email; if (!empty($post_email) && $post_email != $email) { $status = 3; } else { if ($user = tt_get_user_by_email($email)) { if (!empty($username) && strtolower($username) != strtolower($user['username'])) { $status = 3; } else { $register = 0; return tt_login_success(); } } else { if (!empty($username) && !empty($email)) { $profile = $result->profile; if ($mybb->settings['disableregs'] == 1) { error($lang->registrations_disabled); } // Set up user handler. require_once MYBB_ROOT . "inc/datahandlers/user.php"; $userhandler = new UserDataHandler("insert"); $birthday_arr = explode('-', $profile->birthday); $bday = array("day" => $birthday_arr[2], "month" => $birthday_arr[1], "year" => $birthday_arr[0]); $user_field = array('fid3' => ucfirst($profile->gender), 'fid1' => $profile->location, 'fid2' => $profile->description); if ($mybb->settings['regtype'] == "admin") { $usergroup = 5; } else { $usergroup = isset($mybb->settings['tapatalk_register_group']) ? $mybb->settings['tapatalk_register_group'] : 2; } // Set the data for the new user. $user = array("username" => $mybb->input['username'], "password" => $mybb->input['password'], "password2" => $mybb->input['password'], "email" => $email, "email2" => $email, "usergroup" => $usergroup, "referrer" => '', "timezone" => $mybb->settings['timezoneoffset'], "language" => '', "regip" => $session->ipaddress, "longregip" => my_ip2long($session->ipaddress), "coppa_user" => 0, "birthday" => $bday, "website" => $profile->link, "user_fields" => $user_field, "signature" => $profile->signature, "option" => array(), "regdate" => TIME_NOW, "lastvisit" => TIME_NOW); if (!empty($profile->avatar_url)) { $updated_avatar = tt_update_avatar_url($profile->avatar_url); } $userhandler->set_data($user); $userhandler->verify_birthday(); $userhandler->verify_options(); if ($userhandler->verify_username_exists()) { $status = 1; } else { if (!$userhandler->verify_password() || !$userhandler->verify_username()) { $errors = $userhandler->get_friendly_errors(); error($errors[0]); } else { $userhandler->set_validated(true); $user = $userhandler->insert_user(); if (!empty($updated_avatar)) { $db->update_query("users", $updated_avatar, "uid='" . $user['uid'] . "'"); } $register = 1; return tt_login_success(); } } } else { $status = 2; } } } } else { if (!$result->result) { if (!empty($result->result_text)) { error($result->result_text); } else { error("Tapatalk ID verify faile!"); } } } if (!empty($status)) { $response = new xmlrpcval(array('result' => new xmlrpcval(0, 'boolean'), 'result_text' => new xmlrpcval('', 'base64'), 'status' => new xmlrpcval($status, 'string')), 'struct'); return new xmlrpcresp($response); } } else { error("Invlaid params!"); } }