From 79ba272f702b6c1f54f15371f215691e1f047eb6 Mon Sep 17 00:00:00 2001 From: richard-dds Date: Mon, 10 Sep 2018 14:01:36 -0400 Subject: [PATCH] Check workspace permissions, not project --- atst/domain/workspaces/scopes.py | 2 +- tests/domain/test_workspaces.py | 16 +++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/atst/domain/workspaces/scopes.py b/atst/domain/workspaces/scopes.py index 3a719239..017a8be4 100644 --- a/atst/domain/workspaces/scopes.py +++ b/atst/domain/workspaces/scopes.py @@ -52,7 +52,7 @@ class ScopedProject(ScopedResource): @property def environments(self): can_view_all_environments = Authorization.has_workspace_permission( - self.user, self.resource, Permissions.VIEW_ENVIRONMENT_IN_APPLICATION + self.user, self.resource.workspace, Permissions.VIEW_ENVIRONMENT_IN_APPLICATION ) if can_view_all_environments: diff --git a/tests/domain/test_workspaces.py b/tests/domain/test_workspaces.py index 5af3e4cb..0433c214 100644 --- a/tests/domain/test_workspaces.py +++ b/tests/domain/test_workspaces.py @@ -203,7 +203,7 @@ def test_scoped_workspace_only_returns_users_projects_and_environments(): assert scoped_workspace.projects[0].environments == [dev_environment] -def test_scoped_workspace_returns_all_projects_for_ccpo(): +def test_scoped_workspace_returns_all_projects_for_workspace_admin(): workspace = Workspaces.create(RequestFactory.create()) for _ in range(5): Projects.create( @@ -214,8 +214,10 @@ def test_scoped_workspace_returns_all_projects_for_ccpo(): ["dev", "staging", "prod"], ) - ccpo = UserFactory.from_atat_role("ccpo") - scoped_workspace = Workspaces.get(ccpo, workspace.id) + admin = Workspaces.add_member( + workspace, UserFactory.from_atat_role("default"), "admin" + ).user + scoped_workspace = Workspaces.get(admin, workspace.id) assert len(scoped_workspace.projects) == 5 assert len(scoped_workspace.projects[0].environments) == 3 @@ -223,16 +225,12 @@ def test_scoped_workspace_returns_all_projects_for_ccpo(): def test_scoped_workspace_returns_all_projects_for_workspace_owner(): workspace = Workspaces.create(RequestFactory.create()) + owner = workspace.owner for _ in range(5): Projects.create( - workspace.owner, - workspace, - "My Project", - "My project", - ["dev", "staging", "prod"], + owner, workspace, "My Project", "My project", ["dev", "staging", "prod"] ) - owner = UserFactory.from_atat_role("owner") scoped_workspace = Workspaces.get(owner, workspace.id) assert len(scoped_workspace.projects) == 5