diff options
author | Erkin Alp Güney <erkinalp9035@gmail.com> | 2022-04-08 11:23:09 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-08 11:23:09 +0300 |
commit | 3a5a90007e7ad8942cd121cf410f7996ecb1e35a (patch) | |
tree | b2757e5f0833a879dbb4ca2b5dc8795c7bd0a198 | |
parent | remove todos that are implemented (diff) | |
download | server-3a5a90007e7ad8942cd121cf410f7996ecb1e35a.tar.xz |
MANAGE_GUILDS
-rw-r--r-- | api/src/routes/guilds/#guild_id/index.ts | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/api/src/routes/guilds/#guild_id/index.ts b/api/src/routes/guilds/#guild_id/index.ts index 991c3f93..8e1e74f7 100644 --- a/api/src/routes/guilds/#guild_id/index.ts +++ b/api/src/routes/guilds/#guild_id/index.ts @@ -1,5 +1,5 @@ import { Request, Response, Router } from "express"; -import { emitEvent, getPermission, Guild, GuildUpdateEvent, handleFile, Member } from "@fosscord/util"; +import { DiscordApiErrors, emitEvent, getPermission, getRights, Guild, GuildUpdateEvent, handleFile, Member } from "@fosscord/util"; import { HTTPError } from "lambert-server"; import { route } from "@fosscord/api"; import "missing-native-js-functions"; @@ -37,9 +37,17 @@ router.get("/", route({}), async (req: Request, res: Response) => { return res.send(guild); }); -router.patch("/", route({ body: "GuildUpdateSchema", permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => { +router.patch("/", route({ body: "GuildUpdateSchema"}), async (req: Request, res: Response) => { const body = req.body as GuildUpdateSchema; const { guild_id } = req.params; + + + const rights = await getRight(req.user_id); + const permission = await getPermission(req.user_id, guild_id); + + if (!rights.has("MANAGE_GUILDS")||!permission.has("MANAGE_GUILD")) + throw DiscordApiErrors.MISSING_PERMISSIONS("MANAGE_GUILD"); + // TODO: guild update check image if (body.icon) body.icon = await handleFile(`/icons/${guild_id}`, body.icon); |