Merge pull request #468 from dod-ccpo/show-revoke-button
Show "Remove Workspace Access" button
This commit is contained in:
commit
15e07537c2
@ -29,7 +29,7 @@ class WorkspaceRoles(object):
|
|||||||
.one()
|
.one()
|
||||||
)
|
)
|
||||||
except NoResultFound:
|
except NoResultFound:
|
||||||
workspace_role = None
|
raise NotFoundError("workspace_role")
|
||||||
|
|
||||||
return workspace_role
|
return workspace_role
|
||||||
|
|
||||||
|
@ -106,6 +106,7 @@ def view_member(workspace_id, member_id):
|
|||||||
projects = Projects.get_all(g.current_user, member, workspace)
|
projects = Projects.get_all(g.current_user, member, workspace)
|
||||||
form = EditMemberForm(workspace_role=member.role_name)
|
form = EditMemberForm(workspace_role=member.role_name)
|
||||||
editable = g.current_user == member.user
|
editable = g.current_user == member.user
|
||||||
|
can_revoke_access = Workspaces.can_revoke_access_for(workspace, member)
|
||||||
return render_template(
|
return render_template(
|
||||||
"workspaces/members/edit.html",
|
"workspaces/members/edit.html",
|
||||||
workspace=workspace,
|
workspace=workspace,
|
||||||
@ -116,6 +117,7 @@ def view_member(workspace_id, member_id):
|
|||||||
env_role_modal_description=ENV_ROLE_MODAL_DESCRIPTION,
|
env_role_modal_description=ENV_ROLE_MODAL_DESCRIPTION,
|
||||||
EnvironmentRoles=EnvironmentRoles,
|
EnvironmentRoles=EnvironmentRoles,
|
||||||
editable=editable,
|
editable=editable,
|
||||||
|
can_revoke_access=can_revoke_access,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -57,7 +57,6 @@
|
|||||||
{{ ConfirmationButton (
|
{{ ConfirmationButton (
|
||||||
"Remove Workspace Access",
|
"Remove Workspace Access",
|
||||||
url_for("workspaces.revoke_access", workspace_id=workspace.id, member_id=member.id),
|
url_for("workspaces.revoke_access", workspace_id=workspace.id, member_id=member.id),
|
||||||
form.csrf_token,
|
|
||||||
confirm_msg="Are you sure? This will remove this user from the workspace.",
|
confirm_msg="Are you sure? This will remove this user from the workspace.",
|
||||||
)}}
|
)}}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
from flask import url_for
|
from flask import url_for
|
||||||
|
|
||||||
from tests.factories import UserFactory, WorkspaceFactory
|
from tests.factories import UserFactory, WorkspaceFactory, WorkspaceRoleFactory
|
||||||
from atst.domain.workspaces import Workspaces
|
from atst.domain.workspaces import Workspaces
|
||||||
from atst.domain.workspace_roles import WorkspaceRoles
|
from atst.domain.workspace_roles import WorkspaceRoles
|
||||||
from atst.domain.projects import Projects
|
from atst.domain.projects import Projects
|
||||||
@ -189,3 +189,31 @@ def test_revoke_member_access(client, user_session):
|
|||||||
)
|
)
|
||||||
assert response.status_code == 302
|
assert response.status_code == 302
|
||||||
assert WorkspaceRoles.get_by_id(member.id).num_environment_roles == 0
|
assert WorkspaceRoles.get_by_id(member.id).num_environment_roles == 0
|
||||||
|
|
||||||
|
|
||||||
|
def test_shows_revoke_button(client, user_session):
|
||||||
|
workspace = WorkspaceFactory.create()
|
||||||
|
user = UserFactory.create()
|
||||||
|
member = WorkspaceRoleFactory.create(user=user, workspace=workspace)
|
||||||
|
user_session(workspace.owner)
|
||||||
|
response = client.get(
|
||||||
|
url_for(
|
||||||
|
"workspaces.view_member",
|
||||||
|
workspace_id=workspace.id,
|
||||||
|
member_id=member.user.id,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
assert "Remove Workspace Access" in response.data.decode()
|
||||||
|
|
||||||
|
|
||||||
|
def test_does_not_show_revoke_button(client, user_session):
|
||||||
|
workspace = WorkspaceFactory.create()
|
||||||
|
user_session(workspace.owner)
|
||||||
|
response = client.get(
|
||||||
|
url_for(
|
||||||
|
"workspaces.view_member",
|
||||||
|
workspace_id=workspace.id,
|
||||||
|
member_id=workspace.owner.id,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
assert "Remove Workspace Access" not in response.data.decode()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user