From 5c27b523341346a8317beae5b3c8b9460cedb23a Mon Sep 17 00:00:00 2001 From: Madeline <46743919+MaddyUnderStars@users.noreply.github.com> Date: Sat, 23 Apr 2022 01:07:59 +1000 Subject: Fixed ability for user to edit any property of themselves, including `rights`, `flags`. Note to self: schemas.json is a GENERATED file. `npm run generate:schema` in api/ --- api/src/routes/users/@me/index.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'api/src') diff --git a/api/src/routes/users/@me/index.ts b/api/src/routes/users/@me/index.ts index d32b44f9..c86189a0 100644 --- a/api/src/routes/users/@me/index.ts +++ b/api/src/routes/users/@me/index.ts @@ -34,6 +34,7 @@ router.patch("/", route({ body: "UserModifySchema" }), async (req: Request, res: if (body.banner) body.banner = await handleFile(`/banners/${req.user_id}`, body.banner as string); const user = await User.findOneOrFail({ where: { id: req.user_id }, select: [...PrivateUserProjection, "data"] }); + user.assign(body); if (body.password) { if (user.data?.hash) { @@ -46,8 +47,6 @@ router.patch("/", route({ body: "UserModifySchema" }), async (req: Request, res: } } - user.assign(body); - if (body.new_password) { if (!body.password && !user.email) { throw FieldErrors({ -- cgit 1.5.1 From 1319e0c04e21bb07badede04297bbc4cf8d61854 Mon Sep 17 00:00:00 2001 From: Madeline <46743919+MaddyUnderStars@users.noreply.github.com> Date: Sat, 23 Apr 2022 01:28:03 +1000 Subject: Can no longer send messages to channel types that do not support it ( categories, voice etc ) --- api/src/routes/channels/#channel_id/messages/index.ts | 5 +++++ util/src/entities/Channel.ts | 11 +++++++++++ 2 files changed, 16 insertions(+) (limited to 'api/src') diff --git a/api/src/routes/channels/#channel_id/messages/index.ts b/api/src/routes/channels/#channel_id/messages/index.ts index af0ae32d..34cc5ff8 100644 --- a/api/src/routes/channels/#channel_id/messages/index.ts +++ b/api/src/routes/channels/#channel_id/messages/index.ts @@ -183,6 +183,9 @@ router.post( } } const channel = await Channel.findOneOrFail({ where: { id: channel_id }, relations: ["recipients", "recipients.user"] }); + if (!channel.isWritable()) { + throw new HTTPError(`Cannot send messages to channel of type ${channel.type}`, 400) + } const embeds = body.embeds || []; if (body.embed) embeds.push(body.embed); @@ -220,6 +223,8 @@ router.post( }) ); } + + //Fix for the client bug delete message.member diff --git a/util/src/entities/Channel.ts b/util/src/entities/Channel.ts index 4bf81901..c516e6a1 100644 --- a/util/src/entities/Channel.ts +++ b/util/src/entities/Channel.ts @@ -352,6 +352,17 @@ export class Channel extends BaseClass { isDm() { return this.type === ChannelType.DM || this.type === ChannelType.GROUP_DM; } + + // Does the channel support sending messages ( eg categories do not ) + isWritable() { + const disallowedChannelTypes = [ + ChannelType.GUILD_CATEGORY, + ChannelType.GUILD_VOICE, // TODO: Remove this when clients can send messages to voice channels on discord.com + ChannelType.GUILD_STAGE_VOICE, + ChannelType.VOICELESS_WHITEBOARD, + ]; + return disallowedChannelTypes.indexOf(this.type) == -1; + } } export interface ChannelPermissionOverwrite { -- cgit 1.5.1 From d56c5149ce244eeed57d3b77e9582ef3ad46053e Mon Sep 17 00:00:00 2001 From: Madeline <46743919+MaddyUnderStars@users.noreply.github.com> Date: Sat, 23 Apr 2022 01:48:41 +1000 Subject: Fix not assigning new changes to input fields in users/@me --- api/src/routes/users/@me/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'api/src') diff --git a/api/src/routes/users/@me/index.ts b/api/src/routes/users/@me/index.ts index c86189a0..1af413c4 100644 --- a/api/src/routes/users/@me/index.ts +++ b/api/src/routes/users/@me/index.ts @@ -34,7 +34,6 @@ router.patch("/", route({ body: "UserModifySchema" }), async (req: Request, res: if (body.banner) body.banner = await handleFile(`/banners/${req.user_id}`, body.banner as string); const user = await User.findOneOrFail({ where: { id: req.user_id }, select: [...PrivateUserProjection, "data"] }); - user.assign(body); if (body.password) { if (user.data?.hash) { @@ -65,6 +64,7 @@ router.patch("/", route({ body: "UserModifySchema" }), async (req: Request, res: } } + user.assign(body); await user.save(); // @ts-ignore -- cgit 1.5.1