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):
|
def accept_invitation(token):
|
||||||
invite = Invitations.accept(g.current_user, token)
|
invite = Invitations.accept(g.current_user, token)
|
||||||
|
|
||||||
return redirect(
|
return redirect(
|
||||||
url_for("workspaces.show_workspace", workspace_id=invite.workspace.id)
|
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))
|
response = client.get(url_for("workspaces.accept_invitation", token=invite.token))
|
||||||
|
|
||||||
assert response.status_code == 404
|
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