Skip to content

Commit 86589c4

Browse files
authored
fix(aci): Allow users with alerts:write to create/edit workflows (#101179)
1 parent 376d277 commit 86589c4

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

src/sentry/workflow_engine/endpoints/organization_workflow_index.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from sentry.api.api_publish_status import ApiPublishStatus
1616
from sentry.api.base import region_silo_endpoint
1717
from sentry.api.bases import OrganizationEndpoint
18+
from sentry.api.bases.organization import OrganizationPermission
1819
from sentry.api.event_search import SearchConfig, SearchFilter, SearchKey, default_config
1920
from sentry.api.event_search import parse_search_query as base_parse_search_query
2021
from sentry.api.exceptions import ResourceDoesNotExist
@@ -69,7 +70,18 @@
6970
parse_workflow_query = partial(base_parse_search_query, config=workflow_search_config)
7071

7172

73+
class OrganizationWorkflowPermission(OrganizationPermission):
74+
scope_map = {
75+
"GET": ["org:read", "org:write", "org:admin", "alerts:read"],
76+
"POST": ["org:write", "org:admin", "alerts:write"],
77+
"PUT": ["org:write", "org:admin", "alerts:write"],
78+
"DELETE": ["org:write", "org:admin", "alerts:write"],
79+
}
80+
81+
7282
class OrganizationWorkflowEndpoint(OrganizationEndpoint):
83+
permission_classes = (OrganizationWorkflowPermission,)
84+
7385
def convert_args(self, request: Request, workflow_id, *args, **kwargs):
7486
args, kwargs = super().convert_args(request, *args, **kwargs)
7587
try:
@@ -91,6 +103,7 @@ class OrganizationWorkflowIndexEndpoint(OrganizationEndpoint):
91103
"DELETE": ApiPublishStatus.EXPERIMENTAL,
92104
}
93105
owner = ApiOwner.ISSUES
106+
permission_classes = (OrganizationWorkflowPermission,)
94107

95108
def filter_workflows(self, request: Request, organization: Organization) -> QuerySet[Workflow]:
96109
"""

0 commit comments

Comments
 (0)