summary refs log tree commit diff
path: root/src/api/routes
diff options
context:
space:
mode:
authorTomatoCake <60300461+DEVTomatoCake@users.noreply.github.com>2024-08-10 22:10:20 +0200
committerTomatoCake <60300461+DEVTomatoCake@users.noreply.github.com>2024-08-10 22:10:20 +0200
commit20b2843680ad1d72b561db5ae536c790015e90cd (patch)
tree8f8b9722a8fe8058f3009c2c2e43e09e479e639c /src/api/routes
parentMerge pull request #1149 from DEVTomatoCake/feat/webhooks-3 (diff)
downloadserver-ts-20b2843680ad1d72b561db5ae536c790015e90cd.tar.xz
Make profile bio max length configurable
Diffstat (limited to 'src/api/routes')
-rw-r--r--src/api/routes/users/#id/profile.ts20
-rw-r--r--src/api/routes/users/@me/index.ts18
2 files changed, 32 insertions, 6 deletions
diff --git a/src/api/routes/users/#id/profile.ts b/src/api/routes/users/#id/profile.ts

index db0922d6..44271cad 100644 --- a/src/api/routes/users/#id/profile.ts +++ b/src/api/routes/users/#id/profile.ts
@@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ @@ -19,6 +19,8 @@ import { route } from "@spacebar/api"; import { Badge, + Config, + FieldErrors, Member, PrivateUserProjection, User, @@ -136,6 +138,18 @@ router.patch( select: [...PrivateUserProjection, "data"], }); + if (body.bio) { + const { maxBio } = Config.get().limits.user; + if (body.bio.length > maxBio) { + throw FieldErrors({ + bio: { + code: "BIO_INVALID", + message: `Bio must be less than ${maxBio} in length`, + }, + }); + } + } + user.assign(body); await user.save(); diff --git a/src/api/routes/users/@me/index.ts b/src/api/routes/users/@me/index.ts
index cddc3a08..5caf0d11 100644 --- a/src/api/routes/users/@me/index.ts +++ b/src/api/routes/users/@me/index.ts
@@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ @@ -189,6 +189,18 @@ router.patch( } } + if (body.bio) { + const { maxBio } = Config.get().limits.user; + if (body.bio.length > maxBio) { + throw FieldErrors({ + bio: { + code: "BIO_INVALID", + message: `Bio must be less than ${maxBio} in length`, + }, + }); + } + } + user.assign(body); user.validate(); await user.save();