From c03cabfb476c7448096cc235c3e862f4f139f667 Mon Sep 17 00:00:00 2001 From: Yulya Artyukhina Date: Fri, 11 Aug 2023 15:37:44 +0200 Subject: [PATCH] Make field rbac_enabled readonly for organization endpoint (#2782) # What this PR does ## Which issue(s) this PR fixes Fixes issue with response 400 on update "Require resolution note" setting ## 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) --- CHANGELOG.md | 1 + engine/apps/api/serializers/organization.py | 2 +- engine/apps/api/tests/test_organization.py | 16 ++++++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 49ea3266..a9d0a67c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Fix Slack acknowledgment reminders by @vadimkerr ([#2769](https://github.com/grafana/oncall/pull/2769)) +- Fix issue with updating "Require resolution note" setting by @Ferril ([#2782](https://github.com/grafana/oncall/pull/2782)) ## v1.3.23 (2023-08-10) diff --git a/engine/apps/api/serializers/organization.py b/engine/apps/api/serializers/organization.py index cfaa124b..5cb596a3 100644 --- a/engine/apps/api/serializers/organization.py +++ b/engine/apps/api/serializers/organization.py @@ -22,7 +22,7 @@ class OrganizationSerializer(EagerLoadingMixin, serializers.ModelSerializer): name = serializers.CharField(required=False, allow_null=True, allow_blank=True, source="org_title") slack_channel = serializers.SerializerMethodField() - rbac_enabled = serializers.BooleanField(source="is_rbac_permissions_enabled") + rbac_enabled = serializers.BooleanField(read_only=True, source="is_rbac_permissions_enabled") SELECT_RELATED = ["slack_team_identity"] diff --git a/engine/apps/api/tests/test_organization.py b/engine/apps/api/tests/test_organization.py index 9b342d59..04470364 100644 --- a/engine/apps/api/tests/test_organization.py +++ b/engine/apps/api/tests/test_organization.py @@ -26,6 +26,22 @@ def test_get_organization_rbac_enabled( assert response.json()["rbac_enabled"] == rbac_enabled +@pytest.mark.django_db +def test_update_organization_settings(make_organization_and_user_with_plugin_token, make_user_auth_headers): + organization, user, token = make_organization_and_user_with_plugin_token() + + client = APIClient() + url = reverse("api-internal:api-organization") + data = {"is_resolution_note_required": True} + + assert organization.is_resolution_note_required is False + + response = client.put(url, format="json", data=data, **make_user_auth_headers(user, token)) + assert response.status_code == status.HTTP_200_OK + organization.refresh_from_db() + assert organization.is_resolution_note_required is True + + @pytest.mark.django_db @pytest.mark.parametrize( "role,expected_status",