user_groups: Do not allow empty group names in backend.

We now raise error if a user tries to create a group with
empty name or tries to update a group name to be empty.
This commit is contained in:
Sahil Batra
2023-09-20 15:16:52 +05:30
committed by Tim Abbott
parent 301e1c07b8
commit cb203fbe9a
2 changed files with 18 additions and 0 deletions

View File

@@ -214,6 +214,9 @@ def access_user_group_for_setting(
def check_user_group_name(group_name: str) -> str: def check_user_group_name(group_name: str) -> str:
if group_name.strip() == "":
raise JsonableError(_("User group name can't be empty!"))
if len(group_name) > UserGroup.MAX_NAME_LENGTH: if len(group_name) > UserGroup.MAX_NAME_LENGTH:
raise JsonableError( raise JsonableError(
_("User group name cannot exceed {max_length} characters.").format( _("User group name cannot exceed {max_length} characters.").format(

View File

@@ -303,6 +303,16 @@ class UserGroupAPITestCase(UserGroupTestCase):
self.assert_json_error(result, "User group name cannot exceed 100 characters.") self.assert_json_error(result, "User group name cannot exceed 100 characters.")
self.assert_length(UserGroup.objects.filter(realm=hamlet.realm), 10) self.assert_length(UserGroup.objects.filter(realm=hamlet.realm), 10)
# Test emtpty group name.
params = {
"name": "",
"members": orjson.dumps([hamlet.id]).decode(),
"description": "Test empty group",
}
result = self.client_post("/json/user_groups/create", info=params)
self.assert_json_error(result, "User group name can't be empty!")
self.assert_length(UserGroup.objects.filter(realm=hamlet.realm), 10)
# Test invalid prefixes for user group name. # Test invalid prefixes for user group name.
params = { params = {
"name": "@test", "name": "@test",
@@ -480,6 +490,11 @@ class UserGroupAPITestCase(UserGroupTestCase):
result = self.client_patch(f"/json/user_groups/{user_group.id}", info=params) result = self.client_patch(f"/json/user_groups/{user_group.id}", info=params)
self.assert_json_error(result, "User group name cannot exceed 100 characters.") self.assert_json_error(result, "User group name cannot exceed 100 characters.")
# Test emtpty group name.
params = {"name": ""}
result = self.client_patch(f"/json/user_groups/{user_group.id}", info=params)
self.assert_json_error(result, "User group name can't be empty!")
# Test invalid prefixes for user group name. # Test invalid prefixes for user group name.
params = {"name": "@test"} params = {"name": "@test"}
result = self.client_patch(f"/json/user_groups/{user_group.id}", info=params) result = self.client_patch(f"/json/user_groups/{user_group.id}", info=params)