- comma-separated list explosion fixed!
This commit is contained in:
		
							parent
							
								
									be7513be2f
								
							
						
					
					
						commit
						9bb77e8c4e
					
				@ -1,8 +1,8 @@
 | 
				
			|||||||
<?php
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function explode_list(string $str) : array {
 | 
					function explode_list(string $str) : array {
 | 
				
			||||||
    if (trim($str) !== "") {
 | 
					    if (($str = trim($str, " \n\r\t\v\0,")) !== "") {
 | 
				
			||||||
        return explode(",", str_replace(" ", "", $str));
 | 
					        return array_map(fn($a) => trim($a), explode(",", str_replace(" ", "", $str)));
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
        return [];
 | 
					        return [];
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -47,7 +47,7 @@ $success = false;
 | 
				
			|||||||
$user = null;
 | 
					$user = null;
 | 
				
			||||||
$nickname = "";
 | 
					$nickname = "";
 | 
				
			||||||
$privilege = PRIVILEGE_NONE;
 | 
					$privilege = PRIVILEGE_NONE;
 | 
				
			||||||
$is_quizmaster = false;
 | 
					
 | 
				
			||||||
// --------
 | 
					// --------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// create request handler
 | 
					// create request handler
 | 
				
			||||||
@ -94,7 +94,6 @@ if ((session_status() != PHP_SESSION_ACTIVE) || (!isset($_SESSION["nickname"]))
 | 
				
			|||||||
$user = $userMgr->getUser($_SESSION["nickname"]);
 | 
					$user = $userMgr->getUser($_SESSION["nickname"]);
 | 
				
			||||||
$nickname = $user->getNickname();
 | 
					$nickname = $user->getNickname();
 | 
				
			||||||
$privilege = $user->getPrivilege();
 | 
					$privilege = $user->getPrivilege();
 | 
				
			||||||
$is_quizmaster = $privilege === PRIVILEGE_QUIZMASTER;
 | 
					 | 
				
			||||||
$groupMgr = new GroupMgr();
 | 
					$groupMgr = new GroupMgr();
 | 
				
			||||||
$gameMgr = new GameMgr();
 | 
					$gameMgr = new GameMgr();
 | 
				
			||||||
$testMgr = new TestMgr();
 | 
					$testMgr = new TestMgr();
 | 
				
			||||||
@ -320,7 +319,7 @@ if ($privilege === PRIVILEGE_PLAYER) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
/* --------------- CREATOR LEVEL ACTIONS ---------------- */
 | 
					/* --------------- 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
 | 
					function create_update_game(ReqHandler &$rh, array $params): array
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -479,7 +478,7 @@ function export_game_file_csv(ReqHandler &$rh, array $params): string
 | 
				
			|||||||
    return "";
 | 
					    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 $gameMgr;
 | 
				
			||||||
    global $testMgr;
 | 
					    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("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("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("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("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.");
 | 
					$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";
 | 
					    return "OK";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function get_all_player_groups(ReqHandler &$rh, array $params): array
 | 
					function get_all_groups(ReqHandler &$rh, array $params): array
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    global $groupMgr;
 | 
					    global $groupMgr;
 | 
				
			||||||
    $groups = $groupMgr->getAllGroups();
 | 
					    $groups = $groupMgr->getAllGroups();
 | 
				
			||||||
@ -601,7 +600,7 @@ function get_all_player_groups(ReqHandler &$rh, array $params): array
 | 
				
			|||||||
    return $a;
 | 
					    return $a;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function search_player_groups(ReqHandler &$rh, array $params): array
 | 
					function search_groups(ReqHandler &$rh, array $params): array
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    global $groupMgr;
 | 
					    global $groupMgr;
 | 
				
			||||||
    $groups = $groupMgr->searchGroups($params["needle"]);
 | 
					    $groups = $groupMgr->searchGroups($params["needle"]);
 | 
				
			||||||
@ -660,7 +659,7 @@ function delete_users(ReqHandler &$rh, array $params): string
 | 
				
			|||||||
    return "OK";
 | 
					    return "OK";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function get_all_game_users(ReqHandler &$rh, array $params): array
 | 
					function get_all_users(ReqHandler &$rh, array $params): array
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    global $userMgr;
 | 
					    global $userMgr;
 | 
				
			||||||
    $user_data_filtered = [];
 | 
					    $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("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("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("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("get_all_groups", [], PRIVILEGE_QUIZMASTER, "get_all_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("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("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(["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("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_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("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.");
 | 
					$rh->add("import_users_from_csv", [], PRIVILEGE_QUIZMASTER, "import_users_from_csv", RESP_JSON, "Get all users.");
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user