Skip to content

Commit

Permalink
fix(sentry-FLAGSMITH-API-4BN): update permission method
Browse files Browse the repository at this point in the history
Update get_permitted_environments on APIKeyUser to add
support for prefetch_metadata
  • Loading branch information
gagantrivedi committed Apr 29, 2024
1 parent fc34a53 commit 23b6bde
Show file tree
Hide file tree
Showing 3 changed files with 133 additions and 51 deletions.
8 changes: 6 additions & 2 deletions api/api_keys/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,12 @@ def get_permitted_projects(
)

def get_permitted_environments(
self, permission_key: str, project: "Project", tag_ids: typing.List[int] = None
self,
permission_key: str,
project: "Project",
tag_ids: typing.List[int] = None,
prefetch_metadata: bool = False,
) -> QuerySet["Environment"]:
return get_permitted_environments_for_master_api_key(
self.key, project, permission_key, tag_ids
self.key, project, permission_key, tag_ids, prefetch_metadata
)
14 changes: 10 additions & 4 deletions api/permissions/permission_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -151,13 +151,19 @@ def get_permitted_environments_for_master_api_key(
project: Project,
permission_key: str,
tag_ids: List[int] = None,
prefetch_metadata: bool = False,
) -> QuerySet[Environment]:
if is_master_api_key_project_admin(master_api_key, project):
return project.environments.all()
queryset = project.environments.all()
else:
queryset = get_permitted_environments_for_master_api_key_using_roles(
master_api_key, project, permission_key, tag_ids
)

return get_permitted_environments_for_master_api_key_using_roles(
master_api_key, project, permission_key, tag_ids
)
if prefetch_metadata:
queryset = queryset.prefetch_related("metadata")

return queryset


def user_has_organisation_permission(
Expand Down
Loading

0 comments on commit 23b6bde

Please sign in to comment.