- Group game and member management merged into the same function

This commit is contained in:
Wiesner András 2024-10-07 21:00:10 +02:00
parent 139c3aa38d
commit b820afabec

View File

@ -821,41 +821,29 @@ function get_game_groups(ReqHandler &$rh, array $params): array
return $groups;
}
function change_group_members(ReqHandler &$rh, array $params): string
function change_group_members_or_games(ReqHandler &$rh, array $params): string
{
global $groupMgr;
global $user;
global $userMgr;
$group = $groupMgr->getGroup($params["groupid"]);
if ($group !== null) {
if ($group->isUserContributor($user->getNickname()) || $user->hasQuizmasterPrivilege()) {
$add = explode_list(trim($params["add"]));
$add = $userMgr->sanitizeNicknames($add);
$remove = explode_list(trim($params["remove"]));
$remove = $userMgr->sanitizeNicknames($remove);
$group->changeMembers($add, $remove);
return "OK";
}
}
return "FAIL";
}
function change_group_games(ReqHandler &$rh, array $params): string
{
global $groupMgr;
global $user;
global $gameMgr;
$group = $groupMgr->getGroup($params["groupid"]);
if ($group !== null) {
if ($group->isUserContributor($user->getNickname()) || $user->hasQuizmasterPrivilege()) {
$add = explode_list(trim($params["add"]));
$add = $gameMgr->sanitizeGames($add);
$remove = explode_list(trim($params["remove"]));
$remove = $gameMgr->sanitizeGames($remove);
$group->changeGames($add, $remove);
$action = $params["action"];
if ($action === "change_group_members") {
global $userMgr;
$add = $userMgr->sanitizeNicknames($add);
$remove = $userMgr->sanitizeNicknames($remove);
$group->changeMembers($add, $remove);
} else if ($action === "change_group_games") {
global $gameMgr;
$add = $gameMgr->sanitizeGames($add);
$remove = $gameMgr->sanitizeGames($remove);
$group->changeGames($add, $remove);
}
return "OK";
}
}
@ -876,8 +864,7 @@ $rh->add("update_group", ["groupname", "description", "owner", "editors", "id"],
$rh->add("delete_groups", ["ids"], PRIVILEGE_QUIZMASTER, "delete_groups", RESP_PLAIN, "Delete group.");
$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("change_group_games", ["groupid", "add", "remove"], PRIVILEGE_QUIZMASTER, "change_group_games", RESP_PLAIN, "Change group games.");
$rh->add(["change_group_members", "change_group_games"], ["groupid", "add", "remove"], PRIVILEGE_QUIZMASTER, "change_group_members_or_games", RESP_PLAIN, "Change group members or games.");
$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.");