From 067d2d8be8edc0f8f4492e7d02a0899f244c2dde Mon Sep 17 00:00:00 2001 From: Madeline <46743919+MaddyUnderStars@users.noreply.github.com> Date: Thu, 2 Feb 2023 22:24:56 +1100 Subject: [PATCH] Merge pull request from GHSA-hqqp-gpqw-9w5c --- assets/schemas.json | Bin 1092544 -> 1092591 bytes src/api/routes/users/@me/settings.ts | 4 ++-- src/util/entities/User.ts | 23 ++++++++--------------- src/util/schemas/UserModifySchema.ts | 4 ++++ src/util/schemas/UserSettingsSchema.ts | 2 +- 5 files changed, 15 insertions(+), 18 deletions(-) diff --git a/assets/schemas.json b/assets/schemas.json index f40bcd7906cfdceb54ed185ea7eb305819e734e9..4a6825d14624ec0c9155310c6fc8ebde58b9a1f1 100644 GIT binary patch delta 120 zcmX?b-Rb>xr-l~B7N!>FEi9p-(;eJcL)wc&S%8=oh}nRc9f&!Am~(q^DA%X&(;s+p z^Gr92ViBJH-;FEi9p-)Bl9B@K0V}F3`Rzlm&=cftU@5*@2h?h&i{f3g!Cv zeewoA+35>*aN2C=^I*N~yPbUw_t8Ms%)FG;is^r OFA(!>mwv~8WiJ4y_%T@k diff --git a/src/api/routes/users/@me/settings.ts b/src/api/routes/users/@me/settings.ts index c883bb306..cfcedec17 100644 --- a/src/api/routes/users/@me/settings.ts +++ b/src/api/routes/users/@me/settings.ts @@ -44,9 +44,9 @@ router.patch( user.settings.assign(body); - user.settings.save(); + await user.settings.save(); - res.json(user.settings); + res.json({ ...user.settings, index: undefined }); }, ); diff --git a/src/util/entities/User.ts b/src/util/entities/User.ts index fa8c7aa7c..7b67c2ace 100644 --- a/src/util/entities/User.ts +++ b/src/util/entities/User.ts @@ -246,27 +246,20 @@ export class User extends BaseClass { if (this.discriminator) { const discrim = Number(this.discriminator); - if (this.discriminator.length > 4) - throw FieldErrors({ - discriminator: { - message: "Discriminator cannot be more than 4 digits.", - code: "DISCRIMINATOR_INVALID", - }, - }); - if (isNaN(discrim)) - throw FieldErrors({ - discriminator: { - message: "Discriminator must be a number.", - code: "DISCRIMINATOR_INVALID", - }, - }); - if (discrim <= 0 || discrim >= 10000) + if ( + isNaN(discrim) || + !(typeof discrim == "number") || + !Number.isInteger(discrim) || + discrim <= 0 || + discrim >= 10000 + ) throw FieldErrors({ discriminator: { message: "Discriminator must be a number.", code: "DISCRIMINATOR_INVALID", }, }); + this.discriminator = discrim.toString().padStart(4, "0"); } } diff --git a/src/util/schemas/UserModifySchema.ts b/src/util/schemas/UserModifySchema.ts index 2316477e7..7851ec22a 100644 --- a/src/util/schemas/UserModifySchema.ts +++ b/src/util/schemas/UserModifySchema.ts @@ -33,5 +33,9 @@ export interface UserModifySchema { new_password?: string; code?: string; email?: string; + /** + * @minLength 4 + * @maxLength 4 + */ discriminator?: string; } diff --git a/src/util/schemas/UserSettingsSchema.ts b/src/util/schemas/UserSettingsSchema.ts index 5a590b02d..f315892e1 100644 --- a/src/util/schemas/UserSettingsSchema.ts +++ b/src/util/schemas/UserSettingsSchema.ts @@ -18,4 +18,4 @@ import { UserSettings } from "@fosscord/util"; -export type UserSettingsSchema = Partial; +export type UserSettingsSchema = Omit, "index">;