Skip to content

Commit 3436344

Browse files
authored
Allow users with user settings read to list users (#3419)
# What this PR does Fixed issue where `User Settings Reader` was missing permission to list users. ## Which issue(s) this PR fixes ## Checklist - [x] Unit, integration, and e2e (if applicable) tests updated - [x] Documentation added (or `pr:no public docs` PR label added if not required) - [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not required)
1 parent 55fedb2 commit 3436344

File tree

3 files changed

+5
-4
lines changed

3 files changed

+5
-4
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ endpoint currently) @mderynck ([#3189](https://github.com/grafana/oncall/pull/31
2121
- User filter doesn't display current value on Alert Groups page ([1714](https://github.com/grafana/oncall/issues/1714))
2222
- Remove displaying rotation modal for Terraform/API based schedules
2323
- Filters polishing ([3183](https://github.com/grafana/oncall/issues/3183))
24+
- Fixed permissions so User settings reader role included list users @mderynck ([#3419](https://github.com/grafana/oncall/pull/3419))
2425

2526
## v1.3.62 (2023-11-21)
2627

engine/apps/api/tests/test_user.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,7 @@ def test_user_update_other_permissions(
410410
[
411411
(LegacyAccessControlRole.ADMIN, status.HTTP_200_OK),
412412
(LegacyAccessControlRole.EDITOR, status.HTTP_200_OK),
413-
(LegacyAccessControlRole.VIEWER, status.HTTP_403_FORBIDDEN),
413+
(LegacyAccessControlRole.VIEWER, status.HTTP_200_OK),
414414
(LegacyAccessControlRole.NONE, status.HTTP_403_FORBIDDEN),
415415
],
416416
)
@@ -1291,14 +1291,14 @@ def test_viewer_cant_update_himself(make_organization_and_user_with_plugin_token
12911291

12921292

12931293
@pytest.mark.django_db
1294-
def test_viewer_cant_list_users(make_organization_and_user_with_plugin_token, make_user_auth_headers):
1294+
def test_viewer_can_list_users(make_organization_and_user_with_plugin_token, make_user_auth_headers):
12951295
_, user, token = make_organization_and_user_with_plugin_token(role=LegacyAccessControlRole.VIEWER)
12961296

12971297
client = APIClient()
12981298
url = reverse("api-internal:user-list")
12991299

13001300
response = client.get(url, format="json", **make_user_auth_headers(user, token))
1301-
assert response.status_code == status.HTTP_403_FORBIDDEN
1301+
assert response.status_code == status.HTTP_200_OK
13021302

13031303

13041304
@pytest.mark.django_db

engine/apps/api/views/user.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ class UserView(
159159
"timezone_options": [RBACPermission.Permissions.USER_SETTINGS_READ],
160160
"check_availability": [RBACPermission.Permissions.USER_SETTINGS_READ],
161161
"metadata": [RBACPermission.Permissions.USER_SETTINGS_WRITE],
162-
"list": [RBACPermission.Permissions.USER_SETTINGS_WRITE],
162+
"list": [RBACPermission.Permissions.USER_SETTINGS_READ],
163163
"update": [RBACPermission.Permissions.USER_SETTINGS_WRITE],
164164
"partial_update": [RBACPermission.Permissions.USER_SETTINGS_WRITE],
165165
"verify_number": [RBACPermission.Permissions.USER_SETTINGS_WRITE],

0 commit comments

Comments
 (0)