Use Workspaces.get_with_members
This commit is contained in:
@@ -53,6 +53,15 @@ class Workspaces(object):
|
|||||||
|
|
||||||
return workspace
|
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
|
@classmethod
|
||||||
def get_many(cls, user):
|
def get_many(cls, user):
|
||||||
workspaces = (
|
workspaces = (
|
||||||
|
@@ -63,13 +63,7 @@ def show_workspace(workspace_id):
|
|||||||
|
|
||||||
@bp.route("/workspaces/<workspace_id>/members")
|
@bp.route("/workspaces/<workspace_id>/members")
|
||||||
def workspace_members(workspace_id):
|
def workspace_members(workspace_id):
|
||||||
user = g.current_user
|
workspace = Workspaces.get_with_members(g.current_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 render_template("workspace_members.html", workspace=workspace)
|
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):
|
with pytest.raises(UnauthorizedError):
|
||||||
Workspaces.update_member(random_user, workspace, member, role_name)
|
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
|
||||||
|
Reference in New Issue
Block a user