Add revoke invitation logic to port. admin route

This commit is contained in:
graham-dds 2019-10-28 13:15:42 -04:00
parent a0bccc64a9
commit ccaabcaab0
2 changed files with 12 additions and 5 deletions

View File

@ -3,6 +3,8 @@ from flask import render_template, request as http_request, g, redirect, url_for
from . import portfolios_bp
from atst.domain.portfolios import Portfolios
from atst.domain.portfolio_roles import PortfolioRoles
from atst.models.portfolio_role import Status as PortfolioRoleStatus
from atst.domain.invitations import PortfolioInvitations
from atst.domain.permission_sets import PermissionSets
from atst.domain.audit_log import AuditLog
from atst.domain.common import Paginator
@ -183,10 +185,15 @@ def remove_member(portfolio_id, portfolio_role_id):
raise UnauthorizedError(
g.current_user, "you can't delete the portfolios PPoC from the portfolio"
)
# TODO: should this cascade and disable any application and environment
# roles they might have?
PortfolioRoles.disable(portfolio_role=portfolio_role)
if (
portfolio_role.latest_invitation
and portfolio_role.status == PortfolioRoleStatus.PENDING
):
PortfolioInvitations.revoke(portfolio_role.latest_invitation.token)
else:
# TODO: should this cascade and disable any application and environment
# roles they might have?
PortfolioRoles.disable(portfolio_role=portfolio_role)
flash("portfolio_member_removed", member_name=portfolio_role.full_name)

View File

@ -134,7 +134,7 @@ def test_revoke_invitation():
assert invite.is_pending
PortfolioInvitations.revoke(invite.token)
assert invite.is_revoked
assert invite.role.status == PortfolioRoleStatus.PENDING
assert invite.role.status == PortfolioRoleStatus.DISABLED
def test_resend_invitation(session):