/** * @param string $username * @param int $char_guid * @param int $itemid * @param int $quantity * @param int $titleid * @param int $achievid * @param int $new_level * @return array */ public static function addcode($username, $char_guid = 0, $itemid = 0, $quantity = 1, $titleid = 0, $achievid = 0, $new_level = 0) { $account_id = auth_account::get_id(mb_strtolower($username)); $code = self::generate_code(); // Check Data if(! $account_id) return array("fail" => 'Account konnte nicht gefunden werden', "result" => false); if(! $code) return array("fail" => 'Code konnte nicht generiert werden', "result" => false); // Add Code if(char_code::add($code, $account_id, $char_guid, $itemid, $new_level, $titleid, $achievid, $quantity) !== false) return array("key" => $code, "result" => true); // Default Value return array("fail" => 'Ein unbekannter Fehler ist aufgetreten...', "result" => false); }
function main($id, $mode) { global $config, $phpbb_root_path, $phpEx; global $db, $user, $auth, $template; $user_id = request_var('u', 0); $key = request_var('k', ''); $sql = 'SELECT user_id, username, user_type, user_email, user_newpasswd, user_lang, user_notify_type, user_actkey, user_inactive_reason FROM ' . USERS_TABLE . "\n\t\t\tWHERE user_id = {$user_id}"; $result = $db->sql_query($sql); $user_row = $db->sql_fetchrow($result); $db->sql_freeresult($result); if (!$user_row) { trigger_error('NO_USER'); } if ($user_row['user_type'] != USER_INACTIVE && !$user_row['user_newpasswd']) { meta_refresh(3, append_sid("{$phpbb_root_path}index.{$phpEx}")); trigger_error('ALREADY_ACTIVATED'); } if ($user_row['user_inactive_reason'] == INACTIVE_MANUAL || $user_row['user_actkey'] !== $key) { trigger_error('WRONG_ACTIVATION'); } // Do not allow activating by non administrators when admin activation is on // Only activation type the user should be able to do is INACTIVE_REMIND // or activate a new password which is not an activation state :@ if (!$user_row['user_newpasswd'] && $user_row['user_inactive_reason'] != INACTIVE_REMIND && $config['require_activation'] == USER_ACTIVATION_ADMIN && !$auth->acl_get('a_user')) { if (!$user->data['is_registered']) { login_box('', $user->lang['NO_AUTH_OPERATION']); } trigger_error('NO_AUTH_OPERATION'); } $update_password = $user_row['user_newpasswd'] ? true : false; if ($update_password) { $sql_ary = array('user_actkey' => '', 'user_password' => $user_row['user_newpasswd'], 'user_newpasswd' => '', 'user_pass_convert' => 0, 'user_login_attempts' => 0); $sql = 'UPDATE ' . USERS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' WHERE user_id = ' . $user_row['user_id']; $db->sql_query($sql); add_log('user', $user_row['user_id'], 'LOG_USER_NEW_PASSWORD', $user_row['username']); // ROA - wow account password change require_once $phpbb_root_path . "roa/classes/class.server.php"; global $auth_server_adress; global $auth_server_port; if (server::serverstatus($auth_server_adress, $auth_server_port)) { require_once $phpbb_root_path . "roa/roa_account.php"; account::game_account_password($user_row['username'], $user_row['user_newpasswd']); } } // Include ROA-Functions require_once $phpbb_root_path . "roa/classes/class.server.php"; global $auth_server_adress; global $auth_server_port; if (server::serverstatus($auth_server_adress, $auth_server_port)) { require_once $phpbb_root_path . "roa/roa_account.php"; if (!$update_password) { include_once $phpbb_root_path . 'includes/functions_user.' . $phpEx; user_active_flip('activate', $user_row['user_id']); $sql = 'UPDATE ' . USERS_TABLE . "\n\t\t\t\t\tSET user_actkey = ''\n\t\t\t\t\tWHERE user_id = {$user_row['user_id']}"; $db->sql_query($sql); // Activate WoW-Account account::game_account_activate(auth_account::get_id($user_row['username'])); // Create the correct logs add_log('user', $user_row['user_id'], 'LOG_USER_ACTIVE_USER'); if ($auth->acl_get('a_user')) { add_log('admin', 'LOG_USER_ACTIVE', $user_row['username']); } } } if ($config['require_activation'] == USER_ACTIVATION_ADMIN && !$update_password) { include_once $phpbb_root_path . 'includes/functions_messenger.' . $phpEx; $messenger = new messenger(false); $messenger->template('admin_welcome_activated', $user_row['user_lang']); $messenger->to($user_row['user_email'], $user_row['username']); $messenger->anti_abuse_headers($config, $user); $messenger->assign_vars(array('USERNAME' => htmlspecialchars_decode($user_row['username']))); $messenger->send($user_row['user_notify_type']); $message = 'ACCOUNT_ACTIVE_ADMIN'; } else { if (!$update_password) { $message = $user_row['user_inactive_reason'] == INACTIVE_PROFILE ? 'ACCOUNT_ACTIVE_PROFILE' : 'ACCOUNT_ACTIVE'; } else { $message = 'PASSWORD_ACTIVATED'; } } meta_refresh(3, append_sid("{$phpbb_root_path}index.{$phpEx}")); trigger_error($user->lang[$message]); }
/** * @param string $username * @return bool|int */ private static function check_refferer($username) { require_once(LIB_DIR . DS . 'class.phpbb_account.php'); require_once(LIB_DIR . DS . 'class.phpbb_profile_fields_data.php'); $phpbb_account = phpbb_account::getByName($username); if($phpbb_account) { $phpbb_special_fields = phpbb_profile_fields_data::get_by_id($phpbb_account[0]["user_id"]); if($phpbb_special_fields[0]["pf_werb_einen_freund"]) { $rec_id = auth_account::get_id(mb_strtolower($phpbb_special_fields[0]["pf_werb_einen_freund"])); if($rec_id) return $rec_id; } } // Default Value return 0; }
/** * @param int $id * @return array */ private static function setCharTrans($id) { if(! isset($_POST['new_acc'])) $_POST['new_acc'] = ""; if(! isset($_POST['char_guid'])) $_POST['char_guid'] = ""; $newaccount = output::escapeALL($_POST['new_acc'], true); $char_guid = output::escapeALL($_POST['char_guid'], true); $error = false; if($newaccount && $char_guid){ // Get CharacterData $char = char_character::get($char_guid); $own_wow_acc = auth_account::getByName(get_phpbb_info::$instance->username); $new_acc_id = auth_account::get_id($newaccount); // Precheck if character is offline if($char === false) $error = "Der Charakter existiert nicht!"; else if(char_character::isOnline($char_guid)) $error = "Der ausgewählte Charakter darf nicht online sein!"; else if($char["account"] != $own_wow_acc[0]["id"]) // Check if char is on own Account $error = "Der Charakter gehört dir nicht!"; else if(auth_account::get_id($newaccount) === false) $error = "Der Zielaccount existiert nicht."; else if(char_character::getNumCharsOnAccount($new_acc_id) >= 10) // check if the target account has less than 10 chars $error = "Der Zielaccount kann keine weiteren Charaktere aufnehmen, bitte lösche dort einen Charakter oder wähle einen anderen Account aus."; else { // Make Char Transfer if(! char_character::charTrans($char_guid, $new_acc_id, $own_wow_acc[0]["id"])) $error = "Ein unbekannter Fehler ist beim Transferieren aufgetreten..."; } unset($char); unset($own_wow_acc); } // Show input field if something is missing if(! $newaccount || ! $char_guid || $error) { $product = point_costs::get($id); user_points::update(get_phpbb_info::$instance->user_id, $product["name"] . " - Angaben fehlten -> Rückgabe der Punkte", $product["points"]); return array("result" => "other", "code" => output::getCharTransfer($id, $_POST['char_guid'], $_POST['new_acc'], $error)); } return array("result" => true); }