Use Workspaces.get_with_members

This commit is contained in:
richard-dds 2018-09-06 11:20:11 -04:00
parent bdab58f150
commit 549e4d6263
3 changed files with 26 additions and 7 deletions

View File

@ -53,6 +53,15 @@ class Workspaces(object):
return workspace
@classmethod
def get_with_members(cls, user, workspace_id):
workspace = Workspaces.get(user, workspace_id)
if not Authorization.has_workspace_permission(
user, workspace, Permissions.VIEW_WORKSPACE_MEMBERS
):
raise UnauthorizedError(user, "view workspace members")
return workspace
@classmethod
def get_many(cls, user):
workspaces = (

View File

@ -63,13 +63,7 @@ def show_workspace(workspace_id):
@bp.route("/workspaces/<workspace_id>/members")
def workspace_members(workspace_id):
user = g.current_user
workspace = Workspaces.get(user, workspace_id)
if not Authorization.has_workspace_permission(
user, workspace, Permissions.VIEW_WORKSPACE_MEMBERS
):
raise UnauthorizedError(user, "view workspace members")
workspace = Workspaces.get_with_members(g.current_user, workspace_id)
return render_template("workspace_members.html", workspace=workspace)

View File

@ -155,3 +155,19 @@ def test_need_permission_to_update_workspace_user_role():
with pytest.raises(UnauthorizedError):
Workspaces.update_member(random_user, workspace, member, role_name)
def test_owner_can_view_workspace_members():
owner = UserFactory.create()
workspace = Workspaces.create(RequestFactory.create(creator=owner))
workspace = Workspaces.get_with_members(owner, workspace.id)
assert workspace
def test_ccpo_can_view_workspace_members():
workspace = Workspaces.create(RequestFactory.create(creator=UserFactory.create()))
ccpo = UserFactory.from_atat_role("ccpo")
workspace = Workspaces.get_with_members(ccpo, workspace.id)
assert workspace