- comma-separated list explosion fixed!

This commit is contained in:
Wiesner András 2024-09-26 09:09:05 +02:00
parent be7513be2f
commit 9bb77e8c4e
2 changed files with 12 additions and 13 deletions

View File

@ -1,8 +1,8 @@
<?php
function explode_list(string $str) : array {
if (trim($str) !== "") {
return explode(",", str_replace(" ", "", $str));
if (($str = trim($str, " \n\r\t\v\0,")) !== "") {
return array_map(fn($a) => trim($a), explode(",", str_replace(" ", "", $str)));
} else {
return [];
}

View File

@ -47,7 +47,7 @@ $success = false;
$user = null;
$nickname = "";
$privilege = PRIVILEGE_NONE;
$is_quizmaster = false;
// --------
// create request handler
@ -94,7 +94,6 @@ if ((session_status() != PHP_SESSION_ACTIVE) || (!isset($_SESSION["nickname"]))
$user = $userMgr->getUser($_SESSION["nickname"]);
$nickname = $user->getNickname();
$privilege = $user->getPrivilege();
$is_quizmaster = $privilege === PRIVILEGE_QUIZMASTER;
$groupMgr = new GroupMgr();
$gameMgr = new GameMgr();
$testMgr = new TestMgr();
@ -320,7 +319,7 @@ if ($privilege === PRIVILEGE_PLAYER) {
/* --------------- CREATOR LEVEL ACTIONS ---------------- */
$requester_nickname = $is_quizmaster ? "*" : $nickname; // "*" means every game
$requester_nickname = $user->hasQuizmasterPrivilege() ? "*" : $nickname; // "*" means every game
function create_update_game(ReqHandler &$rh, array $params): array
{
@ -479,7 +478,7 @@ function export_game_file_csv(ReqHandler &$rh, array $params): string
return "";
}
function get_player_results_by_gameid(ReqHandler &$rh, array $params): array
function get_results_by_gameid(ReqHandler &$rh, array $params): array
{
global $gameMgr;
global $testMgr;
@ -524,7 +523,7 @@ $rh->add("get_all_game_headers", [], PRIVILEGE_CREATOR, "get_all_game_headers",
$rh->add("get_challenges", [], PRIVILEGE_CREATOR, "get_challenges", RESP_PLAIN, "Get game challenges.");
$rh->add("delete_games", ["ids"], PRIVILEGE_CREATOR, "delete_games", RESP_PLAIN, "Delete games.");
$rh->add("export_game_file_csv", ["gameid"], PRIVILEGE_CREATOR, "export_game_file_csv", RESP_NONE, "Export game CSV file.");
$rh->add("get_results_by_gameid", ["gameid"], PRIVILEGE_CREATOR, "get_player_results_by_gameid", RESP_JSON, "Get game results.");
$rh->add("get_results_by_gameid", ["gameid"], PRIVILEGE_CREATOR, "get_results_by_gameid", RESP_JSON, "Get game results.");
$rh->add("generate_detailed_stats", ["gameid", "testids"], PRIVILEGE_CREATOR, "generate_detailed_game_stats", RESP_JSON, "Generate detailed game stats.");
$rh->add("delete_tests", ["ids"], PRIVILEGE_CREATOR, "delete_tests", RESP_PLAIN, "Delete tests.");
@ -590,7 +589,7 @@ function delete_groups(ReqHandler &$rh, array $params): string
return "OK";
}
function get_all_player_groups(ReqHandler &$rh, array $params): array
function get_all_groups(ReqHandler &$rh, array $params): array
{
global $groupMgr;
$groups = $groupMgr->getAllGroups();
@ -601,7 +600,7 @@ function get_all_player_groups(ReqHandler &$rh, array $params): array
return $a;
}
function search_player_groups(ReqHandler &$rh, array $params): array
function search_groups(ReqHandler &$rh, array $params): array
{
global $groupMgr;
$groups = $groupMgr->searchGroups($params["needle"]);
@ -660,7 +659,7 @@ function delete_users(ReqHandler &$rh, array $params): string
return "OK";
}
function get_all_game_users(ReqHandler &$rh, array $params): array
function get_all_users(ReqHandler &$rh, array $params): array
{
global $userMgr;
$user_data_filtered = [];
@ -718,13 +717,13 @@ function import_users_from_csv(ReqHandler &$rh, array $params): string
$rh->add("create_group", ["groupname", "description"], PRIVILEGE_QUIZMASTER, "create_update_group", RESP_PLAIN, "Create group.");
$rh->add("update_group", ["groupname", "description", "owner", "editors", "id"], PRIVILEGE_QUIZMASTER, "create_update_group", RESP_PLAIN, "Update group.");
$rh->add("delete_groups", ["ids"], PRIVILEGE_QUIZMASTER, "delete_groups", RESP_PLAIN, "Delete group.");
$rh->add("get_all_groups", [], PRIVILEGE_QUIZMASTER, "get_all_player_groups", RESP_JSON, "Get all player groups.");
$rh->add("search_groups", ["needle"], PRIVILEGE_QUIZMASTER, "search_player_groups", RESP_JSON, "Serach and fetch player groups.");
$rh->add("get_all_groups", [], PRIVILEGE_QUIZMASTER, "get_all_groups", RESP_JSON, "Get all player groups.");
$rh->add("search_groups", ["needle"], PRIVILEGE_QUIZMASTER, "search_groups", RESP_JSON, "Serach and fetch player groups.");
$rh->add("change_group_members", ["groupid", "add", "remove"], PRIVILEGE_QUIZMASTER,"change_group_members", RESP_PLAIN, "Change group members.");
$rh->add(["create_user", "update_user"], ["nickname", "password", "realname", "privilege"], PRIVILEGE_QUIZMASTER, "create_update_user", RESP_PLAIN, "Create or update user.");
$rh->add("delete_users", ["users"], PRIVILEGE_QUIZMASTER, "delete_users", RESP_PLAIN, "Delete users.");
$rh->add("get_all_users", [], PRIVILEGE_QUIZMASTER, "get_all_game_users", RESP_JSON, "Get all users.");
$rh->add("get_all_users", [], PRIVILEGE_QUIZMASTER, "get_all_users", RESP_JSON, "Get all users.");
$rh->add("get_user_groups", ["nickname"], PRIVILEGE_QUIZMASTER, "get_user_groups", RESP_JSON, "Get user's groups.");
$rh->add("get_game_groups", ["gameid"], PRIVILEGE_QUIZMASTER, "get_game_groups", RESP_JSON, "Get game's groups.");
$rh->add("import_users_from_csv", [], PRIVILEGE_QUIZMASTER, "import_users_from_csv", RESP_JSON, "Get all users.");