From 655498c2c3d2913cc6e1c531211c7719b90c1ac9 Mon Sep 17 00:00:00 2001 From: mohamed-sameh-albaz <136837275+mohamed-sameh-albaz@users.noreply.github.com> Date: Mon, 15 Dec 2025 20:39:44 +0200 Subject: [PATCH 1/3] fix(username): change validations for username --- src/user/dto/update-user.dto.ts | 2 +- src/user/dto/update-username.dto.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/user/dto/update-user.dto.ts b/src/user/dto/update-user.dto.ts index b57026a..9abfafa 100644 --- a/src/user/dto/update-user.dto.ts +++ b/src/user/dto/update-user.dto.ts @@ -34,7 +34,7 @@ export class UpdateUserDto { @IsString() @MinLength(3, { message: 'Username must be at least 3 characters long' }) @MaxLength(50, { message: 'Username must be at most 50 characters long' }) - @Matches(/^[a-zA-Z](?!.*[_.]{2})[a-zA-Z0-9._]*[a-zA-Z0-9]$/, { + @Matches(/^[a-zA-Z](?!.*[_.-]{2})[a-zA-Z0-9._-]*[a-zA-Z0-9]$/, { message: 'Username must start with a letter, end with a letter or number, and can only contain letters, numbers, dots, and underscores — without consecutive dots or underscores.', }) diff --git a/src/user/dto/update-username.dto.ts b/src/user/dto/update-username.dto.ts index b5a4b2b..c5fc3fe 100644 --- a/src/user/dto/update-username.dto.ts +++ b/src/user/dto/update-username.dto.ts @@ -6,7 +6,7 @@ export class UpdateUsernameDto { @IsNotEmpty({ message: 'Username is required' }) @MinLength(3, { message: 'Username must be at least 3 characters long' }) @MaxLength(50, { message: 'Username must be at most 50 characters long' }) - @Matches(/^[a-zA-Z](?!.*[_.]{2})[a-zA-Z0-9._]+$/, { + @Matches(/^[a-zA-Z](?!.*[_.-]{2})[a-zA-Z0-9._-]+$/, { message: 'Username must start with a letter and can only contain letters, numbers, dots, and underscores — without consecutive dots or underscores.', }) From 01b4a70683ebccd8c2ffb5e1f9197868822d3b6e Mon Sep 17 00:00:00 2001 From: Mohamed Albaz <136837275+mohamed-sameh-albaz@users.noreply.github.com> Date: Mon, 15 Dec 2025 20:42:15 +0200 Subject: [PATCH 2/3] Update src/user/dto/update-user.dto.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- src/user/dto/update-user.dto.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/user/dto/update-user.dto.ts b/src/user/dto/update-user.dto.ts index 9abfafa..5bcdb5b 100644 --- a/src/user/dto/update-user.dto.ts +++ b/src/user/dto/update-user.dto.ts @@ -36,7 +36,7 @@ export class UpdateUserDto { @MaxLength(50, { message: 'Username must be at most 50 characters long' }) @Matches(/^[a-zA-Z](?!.*[_.-]{2})[a-zA-Z0-9._-]*[a-zA-Z0-9]$/, { message: - 'Username must start with a letter, end with a letter or number, and can only contain letters, numbers, dots, and underscores — without consecutive dots or underscores.', + 'Username must start with a letter, end with a letter or number, and can only contain letters, numbers, dots, underscores, and hyphens — without consecutive dots, underscores, or hyphens.', }) @Trim() @ToLowerCase() From 44faa645adfaec9432d02f342250623fe7405322 Mon Sep 17 00:00:00 2001 From: Mohamed Albaz <136837275+mohamed-sameh-albaz@users.noreply.github.com> Date: Mon, 15 Dec 2025 20:42:20 +0200 Subject: [PATCH 3/3] Update src/user/dto/update-username.dto.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- src/user/dto/update-username.dto.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/user/dto/update-username.dto.ts b/src/user/dto/update-username.dto.ts index c5fc3fe..597ca02 100644 --- a/src/user/dto/update-username.dto.ts +++ b/src/user/dto/update-username.dto.ts @@ -8,7 +8,7 @@ export class UpdateUsernameDto { @MaxLength(50, { message: 'Username must be at most 50 characters long' }) @Matches(/^[a-zA-Z](?!.*[_.-]{2})[a-zA-Z0-9._-]+$/, { message: - 'Username must start with a letter and can only contain letters, numbers, dots, and underscores — without consecutive dots or underscores.', + 'Username must start with a letter and can only contain letters, numbers, dots, underscores, and hyphens — without consecutive dots, underscores, or hyphens.', }) @ApiProperty({ description: 'The new username for the user',