From 8b0d04f372d2c4bb442b37613e26407315fd99c4 Mon Sep 17 00:00:00 2001 From: Face <69168154+face-hh@users.noreply.github.com> Date: Mon, 2 Jun 2025 11:17:22 +0300 Subject: [PATCH] fix long usernames --- website/src/routes/api/settings/+server.ts | 9 ++++----- .../src/routes/api/settings/check-username/+server.ts | 4 +++- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/website/src/routes/api/settings/+server.ts b/website/src/routes/api/settings/+server.ts index aad175e..3802ec5 100644 --- a/website/src/routes/api/settings/+server.ts +++ b/website/src/routes/api/settings/+server.ts @@ -8,10 +8,6 @@ import { MAX_FILE_SIZE } from '$lib/data/constants'; import { isNameAppropriate } from '$lib/server/moderation'; async function validateInputs(name: string, bio: string, username: string, avatarFile: File | null) { - if (name && name.trim().length < 1) { - throw error(400, 'Name cannot be empty'); - } - if (name && !(await isNameAppropriate(name.trim()))) { throw error(400, 'Name contains inappropriate content'); } @@ -54,11 +50,14 @@ export async function POST({ request }) { } const formData = await request.formData(); - const name = (formData.get('name') as string)?.trim(); + + let name = (formData.get('name') as string)?.trim(); const bio = formData.get('bio') as string; const username = (formData.get('username') as string)?.toLowerCase().trim(); const avatarFile = formData.get('avatar') as File | null; + name = name?.trim().replace(/\s+/g, ' '); + await validateInputs(name, bio, username, avatarFile); const updates: Record = { diff --git a/website/src/routes/api/settings/check-username/+server.ts b/website/src/routes/api/settings/check-username/+server.ts index cd2de61..9d8ce5c 100644 --- a/website/src/routes/api/settings/check-username/+server.ts +++ b/website/src/routes/api/settings/check-username/+server.ts @@ -5,11 +5,13 @@ import { eq } from 'drizzle-orm'; import { isNameAppropriate } from '$lib/server/moderation'; export async function GET({ url }) { - const username = url.searchParams.get('username')?.toLowerCase().trim(); + let username = url.searchParams.get('username')?.toLowerCase().trim(); if (!username) { return json({ available: false }); } + username = username.trim().replace(/\s+/g, ' '); + if (username.length < 3 || username.length > 30) { return json({ available: false,