function upgrade15_usernameupdate() { global $db, $output, $mybb; $output->print_header("Performing Queries"); echo "<p>Performing username updates..</p>"; flush(); require_once MYBB_ROOT . "inc/datahandler.php"; require_once MYBB_ROOT . "inc/datahandlers/user.php"; $not_renameable = array(); // Because commas can cause some problems with private message sending in usernames we have to remove them $query = $db->simple_select("users", "uid, username", "username LIKE '%,%'"); while ($user = $db->fetch_array($query)) { $userhandler = new UserDataHandler('update'); $updated_user = array("uid" => $user['uid'], "username" => str_replace(',', '', $user['username'])); $userhandler->set_data($updated_user); if (!$userhandler->validate_user()) { $not_renameable[] = htmlspecialchars_uni($user['username']); } else { $userhandler->update_user(); } } if (!empty($not_renameable)) { echo "<span style=\"color: red;\">NOTICE:</span> The following users could not be renamed automatically. Please rename these users in the Admin CP manually after the upgrade process has finished completing:<br />\n\t\t<ul>\n\t\t<li>"; echo implode('</li>\\n<li>', $not_renameable); echo "</li>\n\t\t</ul>"; } $contents .= "Click next to continue with the upgrade process.</p>"; $output->print_contents($contents); $output->print_footer("15_done"); }
/** * MyBB 1.8 * Copyright 2014 MyBB Group, All Rights Reserved * * Website: http://www.mybb.com * License: http://www.mybb.com/about/license * */ function task_userpruning($task) { global $db, $lang, $mybb, $cache, $plugins; if ($mybb->settings['enablepruning'] != 1) { return; } // Are we pruning by posts? if ($mybb->settings['enableprunebyposts'] == 1) { $in_usergroups = array(); $users = array(); $usergroups = $cache->read('usergroups'); foreach ($usergroups as $gid => $usergroup) { // Exclude admin, moderators, super moderators, banned if ($usergroup['canmodcp'] == 1 || $usergroup['cancp'] == 1 || $usergroup['issupermod'] == 1 || $usergroup['isbannedgroup'] == 1) { continue; } $in_usergroups[] = $gid; } // If we're not pruning unactivated users, then remove them from the criteria if ($mybb->settings['pruneunactived'] == 0) { $key = array_search('5', $in_usergroups); unset($in_usergroups[$key]); } $prunepostcount = (int) $mybb->settings['prunepostcount']; $regdate = TIME_NOW - (int) $mybb->settings['dayspruneregistered'] * 24 * 60 * 60; $usergroups = $db->escape_string(implode(',', $in_usergroups)); $query = $db->simple_select('users', 'uid', "regdate<={$regdate} AND postnum<={$prunepostcount} AND usergroup IN({$usergroups})"); while ($uid = $db->fetch_field($query, 'uid')) { $users[$uid] = $uid; } if ($users && $mybb->settings['prunepostcountall']) { $query = $db->simple_select('posts', 'uid, COUNT(pid) as posts', "uid IN ('" . implode("','", $users) . "') AND visible>0", array('group_by' => 'uid')); while ($user = $db->fetch_array($query)) { if ($user['posts'] >= $prunepostcount) { unset($users[$user['uid']]); } } } } // Are we pruning unactivated users? if ($mybb->settings['pruneunactived'] == 1) { $regdate = TIME_NOW - (int) $mybb->settings['dayspruneunactivated'] * 24 * 60 * 60; $query = $db->simple_select("users", "uid", "regdate<={$regdate} AND usergroup='5'"); while ($user = $db->fetch_array($query)) { $users[$user['uid']] = $user['uid']; } } if (is_object($plugins)) { $args = array('task' => &$task, 'in_usergroups' => &$in_usergroups, 'users' => &$users); $plugins->run_hooks('task_userpruning', $args); } if (!empty($users)) { // Set up user handler. require_once MYBB_ROOT . 'inc/datahandlers/user.php'; $userhandler = new UserDataHandler('delete'); // Delete the prunned users $userhandler->delete_user($users, $mybb->settings['prunethreads']); } add_task_log($task, $lang->task_userpruning_ran); }
/** * * @param string $dsn - a valid data source name * @return UserDataHandler instance */ public static function instance($dsn = NULL) { if (self::$instance == NULL || self::$tester_dsn != $dsn) { self::$instance = new UserDataHandler($dsn); } return self::$instance; }
function upgrade15_usernameupdate() { global $db, $output, $mybb, $plugins; $output->print_header("Performing Queries"); echo "<p>Performing username updates..</p>"; flush(); require_once MYBB_ROOT . "inc/datahandler.php"; require_once MYBB_ROOT . "inc/datahandlers/user.php"; // Load plugin system for datahandler require_once MYBB_ROOT . "inc/class_plugins.php"; $plugins = new pluginSystem(); $not_renameable = array(); // Because commas can cause some problems with private message sending in usernames we have to remove them $query = $db->simple_select("users", "uid, username", "username LIKE '%,%'"); while ($user = $db->fetch_array($query)) { $prefix = ''; $userhandler = new UserDataHandler('update'); do { $username = str_replace(',', '', $user['username']) . '_' . $prefix; $updated_user = array("uid" => $user['uid'], "username" => $username); $userhandler->set_data($updated_user); ++$prefix; } while (!$userhandler->verify_username() || $userhandler->verify_username_exists()); if (!$userhandler->validate_user()) { $not_renameable[] = htmlspecialchars_uni($user['username']); } else { $db->update_query("users", array('username' => $db->escape_string($username)), "uid='{$user['uid']}'"); $db->update_query("posts", array('username' => $db->escape_string($username)), "uid='{$user['uid']}'"); $db->update_query("threads", array('username' => $db->escape_string($username)), "uid='{$user['uid']}'"); $db->update_query("threads", array('lastposter' => $db->escape_string($username)), "lastposteruid='{$user['uid']}'"); $db->update_query("forums", array('lastposter' => $db->escape_string($username)), "lastposteruid='{$user['uid']}'"); update_stats(array("numusers" => "+0")); } } if (!empty($not_renameable)) { echo "<span style=\"color: red;\">NOTICE:</span> The following users could not be renamed automatically. Please rename these users in the Admin CP manually after the upgrade process has finished completing:<br />\n\t\t<ul>\n\t\t<li>"; echo implode('</li>\\n<li>', $not_renameable); echo "</li>\n\t\t</ul>"; } $contents .= "Click next to continue with the upgrade process.</p>"; $output->print_contents($contents); $output->print_footer("15_done"); }
function upgrade15_usernameupdate() { global $db, $output, $mybb, $plugins; $output->print_header("Wykonywanie zapytań"); echo "<p>Trwa wykonywanie wymaganych zapytań do bazy danych...</p>"; flush(); require_once MYBB_ROOT . "inc/datahandler.php"; require_once MYBB_ROOT . "inc/datahandlers/user.php"; // Load plugin system for datahandler require_once MYBB_ROOT . "inc/class_plugins.php"; $plugins = new pluginSystem(); $not_renameable = array(); // Because commas can cause some problems with private message sending in usernames we have to remove them $query = $db->simple_select("users", "uid, username", "username LIKE '%,%'"); while ($user = $db->fetch_array($query)) { $prefix = ''; $userhandler = new UserDataHandler('update'); do { $username = str_replace(',', '', $user['username']) . '_' . $prefix; $updated_user = array("uid" => $user['uid'], "username" => $username); $userhandler->set_data($updated_user); ++$prefix; } while (!$userhandler->verify_username() || $userhandler->verify_username_exists()); if (!$userhandler->validate_user()) { $not_renameable[] = htmlspecialchars_uni($user['username']); } else { $db->update_query("users", array('username' => $db->escape_string($username)), "uid='{$user['uid']}'"); $db->update_query("posts", array('username' => $db->escape_string($username)), "uid='{$user['uid']}'"); $db->update_query("threads", array('username' => $db->escape_string($username)), "uid='{$user['uid']}'"); $db->update_query("threads", array('lastposter' => $db->escape_string($username)), "lastposteruid='{$user['uid']}'"); $db->update_query("forums", array('lastposter' => $db->escape_string($username)), "lastposteruid='{$user['uid']}'"); update_stats(array("numusers" => "+0")); } } if (!empty($not_renameable)) { echo "<span style=\"color: red;\">OSTRZEŻENIE:</span> Poniższe loginy nie mogły zostać zmienione automatycznie. Zmień je ręcznie po zakończeniu procesu aktualizacji.<br />\n\t\t<ul>\n\t\t<li>"; echo implode('</li>\\n<li>', $not_renameable); echo "</li>\n\t\t</ul>"; } $contents .= "Naciśnij przycisk Dalej, aby kontynuować proces aktualizacji.</p>"; $output->print_contents($contents); $output->print_footer("15_done"); }
admin_redirect("index.php?module=user-users"); } // Determine the usergroup stuff if (is_array($mybb->input['additionalgroups'])) { foreach ($mybb->input['additionalgroups'] as $key => $gid) { if ($gid == $mybb->input['usergroup']) { unset($mybb->input['additionalgroups'][$key]); } } $additionalgroups = implode(",", $mybb->input['additionalgroups']); } else { $additionalgroups = ''; } // Set up user handler. require_once MYBB_ROOT . "inc/datahandlers/user.php"; $userhandler = new UserDataHandler('update'); // Set the data for the new user. $updated_user = array("uid" => $mybb->input['uid'], "username" => $mybb->input['username'], "email" => $mybb->input['email'], "email2" => $mybb->input['email'], "usergroup" => $mybb->input['usergroup'], "additionalgroups" => $additionalgroups, "displaygroup" => $mybb->input['displaygroup'], "postnum" => $mybb->input['postnum'], "usertitle" => $mybb->input['usertitle'], "timezone" => $mybb->input['timezone'], "language" => $mybb->input['language'], "profile_fields" => $mybb->input['profile_fields'], "profile_fields_editable" => true, "website" => $mybb->input['website'], "icq" => $mybb->input['icq'], "aim" => $mybb->input['aim'], "yahoo" => $mybb->input['yahoo'], "msn" => $mybb->input['msn'], "birthday" => array("day" => $mybb->input['bday1'], "month" => $mybb->input['bday2'], "year" => $mybb->input['bday3']), "style" => $mybb->input['style'], "signature" => $mybb->input['signature'], "dateformat" => intval($mybb->input['dateformat']), "timeformat" => intval($mybb->input['timeformat']), "language" => $mybb->input['language'], "usernotes" => $mybb->input['usernotes']); if ($user['usergroup'] == 5 && $mybb->input['usergroup'] != 5) { if ($user['coppauser'] == 1) { $updated_user['coppa_user'] = 0; } } if ($mybb->input['new_password']) { $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']); }
$form_container->output_row($lang->ban_time, "", $form->generate_select_box('bantime', $length_list, $mybb->input['bantime'], array('id' => 'bantime')), 'bantime'); $form_container->end(); $buttons[] = $form->generate_submit_button($lang->ban_users); $form->output_submit_wrapper($buttons); $form->end(); $page->output_footer(); break; case 'multidelete': if ($mybb->input['no']) { admin_redirect("index.php?module=user-users" . $vid_url); // User clicked on 'No } else { if ($mybb->input['processed'] == 1) { // Set up user handler. require_once MYBB_ROOT . 'inc/datahandlers/user.php'; $userhandler = new UserDataHandler('delete'); // Delete users $deleted = $userhandler->delete_user($selected); $to_be_deleted = $deleted['deleted_users']; // Get the correct number of deleted users // Update forum stats, remove the cookie and redirect the user my_unsetcookie("inlinemod_useracp"); $mybb->input['action'] = "inline_delete"; log_admin_action($to_be_deleted); $lang->users_deleted = $lang->sprintf($lang->users_deleted, $to_be_deleted); $cache->update_awaitingactivation(); flash_message($lang->users_deleted, 'success'); admin_redirect("index.php?module=user-users" . $vid_url); } $to_be_deleted = count($selected); $lang->confirm_multidelete = $lang->sprintf($lang->confirm_multidelete, my_number_format($to_be_deleted));
/** * Verifies the author of a post and fetches the username if necessary. * * @return boolean True if the author information is valid, false if invalid. */ function verify_author() { global $mybb; $post =& $this->data; // Don't have a user ID at all - not good (note, a user id of 0 will still work). if (!isset($post['uid'])) { $this->set_error("invalid_user_id"); return false; } else { if ($post['uid'] > 0 && empty($post['username'])) { $user = get_user($post['uid']); $post['username'] = $user['username']; } else { if ($post['uid'] == 0 && $post['username'] != $lang->guest) { // Set up user handler require_once MYBB_ROOT . "inc/datahandlers/user.php"; $userhandler = new UserDataHandler(); $data_array = array('username' => $post['username']); $userhandler->set_data($data_array); if (!$userhandler->verify_username()) { // invalid username $this->errors = array_merge($this->errors, $userhandler->get_errors()); return false; } if ($userhandler->verify_username_exists()) { // username is in use $this->errors = array_merge($this->errors, $userhandler->get_errors()); return false; } } } } // After all of this, if we still don't have a username, force the username as "Guest" (Note, this is not translatable as it is always a fallback) if (!$post['username']) { $post['username'] = "******"; } return true; }
$lang->load('global'); $lang->load('messages'); // Run global_start plugin hook now that the basics are set up $plugins->run_hooks('global_start'); if (function_exists('mb_internal_encoding') && !empty($lang->settings['charset'])) { @mb_internal_encoding($lang->settings['charset']); } // Select the board theme to use. $loadstyle = ''; $load_from_forum = $load_from_user = 0; $style = array(); // The user used our new quick theme changer if (isset($mybb->input['theme']) && verify_post_check($mybb->get_input('my_post_key'), true)) { // Set up user handler. require_once MYBB_ROOT . 'inc/datahandlers/user.php'; $userhandler = new UserDataHandler('update'); $user = array('uid' => $mybb->user['uid'], 'style' => $mybb->get_input('theme', MyBB::INPUT_INT), 'usergroup' => $mybb->user['usergroup'], 'additionalgroups' => $mybb->user['additionalgroups']); $userhandler->set_data($user); // validate_user verifies the style if it is set in the data array. if ($userhandler->validate_user()) { $mybb->user['style'] = $user['style']; // If user is logged in, update their theme selection with the new one if ($mybb->user['uid']) { if (isset($mybb->cookies['mybbtheme'])) { my_unsetcookie('mybbtheme'); } $userhandler->update_user(); } else { my_setcookie('mybbtheme', $user['style']); } }
/** * 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; }
/** * 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; }
*/ require_once ROOT_DIR . '/include/module_init.inc.php'; //$self = whoami(); $self = 'list_chatrooms'; // x template require_once 'include/comunica_functions.inc.php'; require_once 'include/ChatRoom.inc.php'; require_once 'include/ChatDataHandler.inc.php'; $status = translateFN('lista delle chatrooms'); // display message that explains the functionality of the current script $help = translateFN("Da qui l'utente puo' creare una nuova chatroom inserendo i valori negli appositi campi.\n\t <br><br>Attenzione!<br>Per il corretto funzionamento della chat e' importante inserire i valori corretti."); $star = translateFN("I campi contrassegnati con * sono obbligatori, non possono essere lasciati vuoti!"); $status = translateFN("Creazione di una chatroom"); // initialize a new UserDataHandler object //$udh = new UserDataHandler(); $udh = UserDataHandler::instance($_SESSION['sess_selected_tester_dsn']); // initialize a new form object $f = new Tform(); // different chat type options are available for admins and for tutors if ($id_profile == AMA_TYPE_SWITCHER or $id_profile == AMA_TYPE_TUTOR) { $options_of_chat_types = array('Classe' => 'Classe', 'Pubblica' => 'Pubblica'); } /* * if($id_profile == AMA_TYPE_TUTOR){ $options_of_chat_types = array('Privata' => 'Privata', 'Classe' => 'Classe', 'Pubblica'=>'Pubblica'); // $options_of_chat_types = array('Privata' => 'Privata'); } *
$groups = explode(",", $mybb->settings['purgespammergroups']); if (!in_array($mybb->user['usergroup'], $groups)) { error_no_permission(); } $uid = $mybb->input['uid']; $user = get_user($uid); if (!$user['uid'] || !purgespammer_show($user['postnum'], $user['usergroup'], $user['uid'])) { error($lang->purgespammer_invalid_user); } if ($mybb->input['action'] == "do_purgespammer") { verify_post_check($mybb->get_input('my_post_key')); $user_deleted = false; // Run the hooks first to avoid any issues when we delete the user $plugins->run_hooks("moderation_purgespammer_purge"); require_once MYBB_ROOT . 'inc/datahandlers/user.php'; $userhandler = new UserDataHandler('delete'); if ($mybb->settings['purgespammerbandelete'] == "ban") { // First delete everything $userhandler->delete_content($uid); $userhandler->delete_posts($uid); // Next ban him (or update the banned reason, shouldn't happen) $query = $db->simple_select("banned", "uid", "uid = '{$uid}'"); if ($db->num_rows($query) > 0) { $banupdate = array("reason" => $db->escape_string($mybb->settings['purgespammerbanreason'])); $db->update_query('banned', $banupdate, "uid = '{$uid}'"); } else { $insert = array("uid" => $uid, "gid" => (int) $mybb->settings['purgespammerbangroup'], "oldgroup" => 2, "oldadditionalgroups" => "", "olddisplaygroup" => 0, "admin" => (int) $mybb->user['uid'], "dateline" => TIME_NOW, "bantime" => "---", "lifted" => 0, "reason" => $db->escape_string($mybb->settings['purgespammerbanreason'])); $db->insert_query('banned', $insert); } // Add the IP's to the banfilters /*
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!"); } }
/** * * Redirect Output - steam_output_to_misc * - - - - - - - - - - - - - - - * @desc This function is holds the actions issued by the Steam Login plugin. * @since 1.0 * @version 1.6 * */ function steam_output_to_misc() { global $mybb, $db, $session; // The standard action to redirect the user to Steam community. if ($mybb->input['action'] == 'steam_login') { steam_redirect(); } // close if($mybb->input['action'] == 'steam_login') if ($mybb->input['action'] == 'steam_return') { $get_key = $db->fetch_array($db->simple_select("settings", "name, value", "name = 'steamlogin_api_key'")); $check_update_username = $db->fetch_array($db->simple_select("settings", "name, value", "name = 'steamlogin_update_username'")); $check_update_avatar = $db->fetch_array($db->simple_select("settings", "name, value", "name = 'steamlogin_update_avatar'")); $check_avatar_size = $db->fetch_array($db->simple_select("settings", "name, value", "name = 'steamlogin_avatar_size'")); $check_required_field = $db->fetch_array($db->simple_select("settings", "name, value", "name = 'steamlogin_required_field'")); if ($get_key['value'] == null) { die("<strong>Not Configured</strong> The Steam Login plugin hasn't been configured correctly. Please ensure an API key is set in the Configuration settings."); } else { require_once MYBB_ROOT . 'inc/class_steam.php'; require_once MYBB_ROOT . 'inc/class_lightopenid.php'; require_once MYBB_ROOT . 'inc/functions.php'; require_once MYBB_ROOT . 'inc/class_session.php'; $steam = new steam(); $steam_open_id = new LightOpenID(); $steam_open_id->validate(); $return_explode = explode('/', $steam_open_id->identity); $steamid = end($return_explode); $steam_info = $steam->get_user_info($steamid); // Check the status. if ($steam_info['status'] == 'success') { $steamid = $steam_info['steamid']; $personaname = $steam_info['personaname']; $profileurl = $steam_info['profileurl']; $avatar = $steam_info['avatars']['medium']; // Check the avatar size set in the database. if ($check_avatar_size['value'] == '0') { $avatar = $steam_info['avatars']['small']; } if ($check_avatar_size['value'] == '2') { $avatar = $steam_info['avatars']['large']; } $personaname = strip_tags($personaname); //This is so people can not use tags that display. $personaname = $db->escape_string($personaname); // Perform a check to see if the user already exists in the database. $user_check = $db->num_rows($db->simple_select("users", "*", "loginname = '{$steamid}'")); if ($user_check == 0) { $password = random_str(8); $email = $steamid . '@steamcommunity.com'; $default_usergroup = 2; // On a standard MyBB installation this is the group: Registered require_once MYBB_ROOT . "inc/datahandlers/user.php"; $userhandler = new UserDataHandler("insert"); $new_user_data = array("username" => $personaname, "password" => $password, "password2" => $password, "email" => $email, "email2" => $email, "avatar" => $avatar, "usergroup" => $default_usergroup, "displaygroup" => $default_usergroup, "website" => $profileurl, "regip" => $session->ipaddress, "longregip" => my_ip2long($session->ipaddress), "loginname" => $steamid); if ($check_required_field['value'] != "" and is_numeric($check_required_field['value'])) { // Check the field exists. $field_exists = $db->num_rows($db->simple_select("profilefields", "*", "fid = '" . $check_required_field['value'] . "'")); if ($field_exists > 0) { $new_user_data['profile_fields']['fid' . $check_required_field['value']] = $steamid; } } $userhandler->set_data($new_user_data); if ($userhandler->validate_user()) { $user_info = $userhandler->insert_user(); } // close if ($userhandler->validate_user()) } else { // close if($user_check == 0) $update = array(); // Init our update array. // Do our checks for both username and avatar. if ($check_update_username['value'] == 1) { $update['username'] = $personaname; } if ($check_update_avatar['value'] == 1) { $update['avatar'] = $avatar; } // Run our update query if the array isn't empty. if (!empty($update)) { $db->update_query('users', $update, "loginname = '{$steamid}'"); } } // close else $user = $db->fetch_array($db->simple_select("users", "*", "loginname = '{$steamid}'")); // Login the user. my_setcookie("mybbuser", $user['uid'] . "_" . $user['loginkey'], true, true); my_setcookie("sid", $session->sid, -1, true); redirect("index.php", 'Your account has been authenticated and you have been logged in.<br/> Powered By <a href="http://www.steampowered.com" target="_blank">Steam</a>', 'Login via Steam'); } // close if($steam_info['status'] == 'success') } // close else } // close if($mybb->input['action'] == 'steam_login') }
/** * get all data for a given message (only called while reading a message) * * @access public * * @param $user_id - id of the user of the spool * @param $msg_id - id of the message * * @return an hash with keys: * id_messaggio, * data_ora, * tipo, * titolo, * mittente*, * destinatari**, * priorita, * testo * * *mittente is a username * **destinatari is a CVS list of usernames * **/ public function get_message($user_id, $msg_id) { // logger("entered MessageHandler::get_message - ". // "[user_id = $user_id, msg_id=$msg_id]", 3); // create generic instance $spool = new Spool($user_id, $this->dsn); // get message content and recipients' ids list $res_ar = $spool->get_message_info($msg_id); //vito, 2 feb 2009: qui potrebbe non aver trovato il messaggio if (AMA_DataHandler::isError($res_ar)) { return new AMA_Error(AMA_ERR_READ_MSG); } list($message_ha, $recipients_ids_ar) = $res_ar; // create instance of UserDataHandler //vito, 26 settembre 2008 //$udh = new UserDataHandler(); $udh = UserDataHandler::instance($this->dsn); // transform sender id into sender username $sender_id = $message_ha['id_mittente']; $res_ar = $udh->find_users_list(array("username"), "id_utente={$sender_id}"); if (AMA_DataHandler::isError($res_ar)) { return new AMA_Error(AMA_ERR_READ_MSG); } $sender_username = $res_ar[0][1]; // transform recipients' ids array into usernames array $recipients_usernames_ar = array(); foreach ($recipients_ids_ar as $rid) { // get username of the current id ($rid) $res_ar = $udh->find_users_list(array("username"), "id_utente={$rid}"); if (AMA_DataHandler::isError($res_ar)) { return new AMA_Error(AMA_ERR_READ_MSG); } if (array_key_exists(0, $res_ar)) { $recipients_usernames_ar[] = $res_ar[0][1]; } } // create CSV list starting from array $recipients_usernames = implode(",", $recipients_usernames_ar); // adapt message hash $message_ha['mittente'] = $sender_username; $message_ha['destinatari'] = $recipients_usernames; // set message as read $res = $spool->_set_message($msg_id, "read", 'R'); if (AMA_DataHandler::isError($res)) { return new AMA_Error(AMA_ERR_UPDATE); } // return values return $message_ha; }