From 333a1a18d59f675111f4ed106fa5614ef563c6f4 Mon Sep 17 00:00:00 2001 From: Elias Schneider Date: Wed, 1 Jan 2025 23:13:16 +0100 Subject: [PATCH] fix: make user validation consistent between pages --- backend/internal/dto/user_dto.go | 2 +- .../src/routes/settings/account/account-form.svelte | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/backend/internal/dto/user_dto.go b/backend/internal/dto/user_dto.go index b5ce238..7351bd1 100644 --- a/backend/internal/dto/user_dto.go +++ b/backend/internal/dto/user_dto.go @@ -13,7 +13,7 @@ type UserDto struct { } type UserCreateDto struct { - Username string `json:"username" binding:"required,username,min=3,max=20"` + Username string `json:"username" binding:"required,username,min=2,max=50"` Email string `json:"email" binding:"required,email"` FirstName string `json:"firstName" binding:"required,min=1,max=50"` LastName string `json:"lastName" binding:"required,min=1,max=50"` diff --git a/frontend/src/routes/settings/account/account-form.svelte b/frontend/src/routes/settings/account/account-form.svelte index 3b52abd..4b21f01 100644 --- a/frontend/src/routes/settings/account/account-form.svelte +++ b/frontend/src/routes/settings/account/account-form.svelte @@ -16,9 +16,16 @@ let isLoading = $state(false); const formSchema = z.object({ - firstName: z.string().min(2).max(50), - lastName: z.string().min(2).max(50), - username: z.string().min(2).max(50), + firstName: z.string().min(1).max(50), + lastName: z.string().min(1).max(50), + username: z + .string() + .min(2) + .max(30) + .regex( + /^[a-z0-9_@.-]+$/, + "Username can only contain lowercase letters, numbers, underscores, dots, hyphens, and '@' symbols" + ), email: z.string().email(), isAdmin: z.boolean() });