From 5fada77b4cb7a9fec821b5df8ae94f121bc2578c Mon Sep 17 00:00:00 2001 From: GOBERT Romain Date: Wed, 12 Nov 2025 15:41:57 +0100 Subject: [PATCH] fix(ui): allow at and colon in username --- internal/adapters/ui/validation.go | 4 ++-- internal/adapters/ui/validation_test.go | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/internal/adapters/ui/validation.go b/internal/adapters/ui/validation.go index 248c7d6..92b030f 100644 --- a/internal/adapters/ui/validation.go +++ b/internal/adapters/ui/validation.go @@ -150,8 +150,8 @@ func GetFieldValidators() map[string]fieldValidator { Message: "Port must be between 1 and 65535", } validators["User"] = fieldValidator{ - Pattern: regexp.MustCompile(`^[a-zA-Z][a-zA-Z0-9._-]*$`), - Message: "User must start with a letter and contain only letters, numbers, dots, hyphens, and underscores", + Pattern: regexp.MustCompile(`^[a-zA-Z][a-zA-Z0-9.@:_-]*$`), + Message: "User must start with a letter and contain only letters, numbers, dots, hyphens, at, colon, and underscores", } validators["Keys"] = fieldValidator{ Validate: validateKeyPaths, diff --git a/internal/adapters/ui/validation_test.go b/internal/adapters/ui/validation_test.go index de33639..08e7d4b 100644 --- a/internal/adapters/ui/validation_test.go +++ b/internal/adapters/ui/validation_test.go @@ -206,8 +206,14 @@ func TestFieldValidatorPatterns(t *testing.T) { // User field {"User", "root", false}, + {"User", "Username", false}, + {"User", "userName", false}, + {"User", "username1", false}, {"User", "user_name", false}, {"User", "user-name", false}, + {"User", "user.name", false}, + {"User", "user@name", false}, + {"User", "user:name", false}, {"User", "1user", true}, // Can't start with number // ConnectTimeout field