Esempio n. 1
0
	/**
	 * @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);
	}
Esempio n. 2
0
    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 mixed $prefix
	 */
	private static function setPrefix($prefix) {
		self::$prefix = $prefix;
	}
Esempio n. 4
0
	/**
	 * @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 updateFaction($id) {
		if(! isset($_POST['char_guid']))
			$_POST['char_guid'] = "";

		$char_guid = output::escapeALL($_POST['char_guid'], true);
		$error = false;

		if($char_guid) {
			$char = char_character::get($char_guid);
			$own_wow_acc = auth_account::getByName(get_phpbb_info::$instance->username);

			// Check input and data
			if($char === false)
				$error = "Der Charakter existiert nicht!";
			else if($char["account"] != $own_wow_acc[0]["id"])
				$error = "Der Charakter gehört dir nicht!";
			else {
				// Change Faction
				if(! char_character::updateFlag($char_guid, 64))
					$error = "Ein unbekannter Fehler ist beim ändern der Fraktion aufgetreten...";
			}
			unset($char);
			unset($own_wow_acc);
		}

		if(! $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::getChar($id, $_POST['char_guid'], $error));
		}
		return array("result" => true);
	}