diff --git a/interface.php b/interface.php index 9b4920c..3f6095b 100644 --- a/interface.php +++ b/interface.php @@ -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.");