From 298ea3f6728d63ad02c38d04437b604a523b170d Mon Sep 17 00:00:00 2001 From: aLeuleu <97832618+aLeuleu@users.noreply.github.com> Date: Fri, 19 Jan 2024 16:41:29 +0100 Subject: [PATCH] add check to ensure username is alphanumeric --- user_management/doc/User_management.md | 1 + user_management/src/user/tests.py | 2 +- user_management/src/user/views.py | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/user_management/doc/User_management.md b/user_management/doc/User_management.md index d6e3fd12..58c8fc5b 100644 --- a/user_management/doc/User_management.md +++ b/user_management/doc/User_management.md @@ -40,6 +40,7 @@ all fields are mandatory > - Username empty > - Username already taken > - Username length {len(username)} > 20 +> - Username must be alphanumeric > - > - Email empty > - Email length {len(email)} > 50 diff --git a/user_management/src/user/tests.py b/user_management/src/user/tests.py index 15056a2b..5141cc77 100644 --- a/user_management/src/user/tests.py +++ b/user_management/src/user/tests.py @@ -43,7 +43,7 @@ def test_signup_valid_username(self): valid_usernames = [ 'Aurel', 'aurel', 'aa', 'AA', 'aurelien', 'aurel42', - 'aurel_42', 'aurel-42', long_username + 'aurelx42', 'aurelh42', long_username ] for username in valid_usernames: print(f'\nTesting {name} with username {username}') diff --git a/user_management/src/user/views.py b/user_management/src/user/views.py index 91950c4c..0287c052 100644 --- a/user_management/src/user/views.py +++ b/user_management/src/user/views.py @@ -63,6 +63,8 @@ def is_valid_username(username): return False, f'Username length {len(username)} < {settings.USERNAME_MIN_LENGTH}' if len(username) > settings.USERNAME_MAX_LENGTH: return False, f'Username length {len(username)} > {settings.USERNAME_MAX_LENGTH}' + if not username.isalnum(): + return False, 'Username must be alphanumeric' users = User.objects.filter(username=username) if users.exists(): return False, f'Username {username} already taken'