summary refs log tree commit diff
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2026-07-01 19:30:20 +0200
committerRory& <root@rory.gay>2026-07-01 19:46:31 +0200
commit15dae644a92c958a5bcdf3b84efa5d5d5b51682f (patch)
tree517c4515ebe8d38d9a108f9a717985193d770c86
parentHandle non-existant applications more gracefully (diff)
downloadserver-ts-15dae644a92c958a5bcdf3b84efa5d5d5b51682f.tar.xz
Restrict reading of application emojis
-rw-r--r--src/api/routes/applications/#application_id/emojis.ts8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/api/routes/applications/#application_id/emojis.ts b/src/api/routes/applications/#application_id/emojis.ts

index 65cf0250..c5cccf2b 100644 --- a/src/api/routes/applications/#application_id/emojis.ts +++ b/src/api/routes/applications/#application_id/emojis.ts
@@ -39,7 +39,9 @@ router.get( async (req: Request, res: Response) => { const { application_id } = req.params as { [key: string]: string }; - // TODO: is there *any* gating on this endpoint? + const app = await Application.findOne({ where: { id: application_id } }); + if (!app) throw DiscordApiErrors.UNKNOWN_APPLICATION; + if (req.user_id != app?.id && req.user_id != app?.owner_id) throw DiscordApiErrors.ACTION_NOT_AUTHORIZED_ON_APPLICATION; const emojis = await Emoji.find({ where: { application_id: application_id }, @@ -68,6 +70,10 @@ router.get( async (req: Request, res: Response) => { const { application_id, emoji_id } = req.params as { [key: string]: string }; + const app = await Application.findOne({ where: { id: application_id } }); + if (!app) throw DiscordApiErrors.UNKNOWN_APPLICATION; + if (req.user_id != app?.id && req.user_id != app?.owner_id) throw DiscordApiErrors.ACTION_NOT_AUTHORIZED_ON_APPLICATION; + const emoji = await Emoji.findOneOrFail({ where: { application_id: application_id, id: emoji_id }, relations: { user: true },