Use Workspaces.get_with_members
This commit is contained in:
parent
bdab58f150
commit
549e4d6263
@ -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 = (
|
||||
|
@ -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)
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user