endpoint for revoking invitations
This commit is contained in:
parent
75dd0f1249
commit
b9529d5c4e
@ -357,10 +357,26 @@ def update_member(workspace_id, member_id):
|
||||
)
|
||||
|
||||
|
||||
@bp.route("/workspaces/invitation/<token>", methods=["GET"])
|
||||
@bp.route("/workspaces/invitations/<token>", methods=["GET"])
|
||||
def accept_invitation(token):
|
||||
invite = Invitations.accept(g.current_user, token)
|
||||
|
||||
return redirect(
|
||||
url_for("workspaces.show_workspace", workspace_id=invite.workspace.id)
|
||||
)
|
||||
|
||||
|
||||
@bp.route("/workspaces/<workspace_id>/invitations/<token>/revoke", methods=["POST"])
|
||||
def revoke_invitation(workspace_id, token):
|
||||
workspace = Workspaces.get(g.current_user, workspace_id)
|
||||
Authorization.check_workspace_permission(
|
||||
g.current_user,
|
||||
workspace,
|
||||
Permissions.ASSIGN_AND_UNASSIGN_ATAT_ROLE,
|
||||
"revoke member invitation",
|
||||
)
|
||||
invite = Invitations.revoke(token)
|
||||
|
||||
return redirect(
|
||||
url_for("workspaces.show_workspace", workspace_id=workspace.id)
|
||||
)
|
||||
|
@ -420,3 +420,22 @@ def test_user_accepts_expired_invite(client, user_session):
|
||||
response = client.get(url_for("workspaces.accept_invitation", token=invite.token))
|
||||
|
||||
assert response.status_code == 404
|
||||
|
||||
|
||||
def test_revoke_invitation(client, user_session):
|
||||
workspace = WorkspaceFactory.create()
|
||||
user = UserFactory.create()
|
||||
ws_role = WorkspaceRoleFactory.create(
|
||||
user=user, workspace=workspace, status=WorkspaceRoleStatus.PENDING
|
||||
)
|
||||
invite = InvitationFactory.create(
|
||||
user_id=user.id,
|
||||
workspace_role_id=ws_role.id,
|
||||
status=InvitationStatus.REJECTED_EXPIRED,
|
||||
expiration_time=datetime.datetime.now() - datetime.timedelta(seconds=1),
|
||||
)
|
||||
user_session(workspace.owner)
|
||||
response = client.post(url_for("workspaces.revoke_invitation", workspace_id=workspace.id, token=invite.token))
|
||||
|
||||
assert response.status_code == 302
|
||||
assert invite.is_revoked
|
||||
|
Loading…
x
Reference in New Issue
Block a user