diff --git a/atst/domain/applications.py b/atst/domain/applications.py index 103fe3ca..42858719 100644 --- a/atst/domain/applications.py +++ b/atst/domain/applications.py @@ -1,5 +1,3 @@ -from sqlalchemy.orm.exc import NoResultFound - from . import BaseDomainClass from atst.database import db from atst.domain.application_roles import ApplicationRoles @@ -44,17 +42,6 @@ class Applications(BaseDomainClass): .all() ) - @classmethod - def get_all(cls, portfolio): - try: - applications = ( - db.session.query(Application).filter_by(portfolio_id=portfolio.id).all() - ) - except NoResultFound: - raise NotFoundError("applications") - - return applications - @classmethod def update(cls, application, new_data): if "name" in new_data: diff --git a/atst/domain/environments.py b/atst/domain/environments.py index 3428f711..bc98bf9f 100644 --- a/atst/domain/environments.py +++ b/atst/domain/environments.py @@ -28,14 +28,6 @@ class Environments(object): db.session.add_all(environments) return environments - @classmethod - def add_member(cls, environment, application_role, role): - environment_user = EnvironmentRoles.create( - application_role=application_role, environment=environment, role=role - ) - db.session.add(environment_user) - return environment - @classmethod def update(cls, environment, name=None): if name is not None: diff --git a/atst/domain/portfolio_roles.py b/atst/domain/portfolio_roles.py index 9691f242..5c9cccbc 100644 --- a/atst/domain/portfolio_roles.py +++ b/atst/domain/portfolio_roles.py @@ -1,22 +1,13 @@ from sqlalchemy.orm.exc import NoResultFound from atst.database import db -from atst.models.portfolio_role import ( - PortfolioRole, - Status as PortfolioRoleStatus, - MEMBER_STATUSES, -) +from atst.models.portfolio_role import PortfolioRole, Status as PortfolioRoleStatus from atst.models.user import User from .permission_sets import PermissionSets from .exceptions import NotFoundError -MEMBER_STATUS_CHOICES = [ - dict(name=key, display_name=value) for key, value in MEMBER_STATUSES.items() -] - - class PortfolioRoles(object): @classmethod def get(cls, portfolio_id, user_id): @@ -39,34 +30,6 @@ class PortfolioRoles(object): except NoResultFound: raise NotFoundError("portfolio_role") - @classmethod - def _get_active_portfolio_role(cls, portfolio_id, user_id): - try: - return ( - db.session.query(PortfolioRole) - .join(User) - .filter(User.id == user_id, PortfolioRole.portfolio_id == portfolio_id) - .filter(PortfolioRole.status == PortfolioRoleStatus.ACTIVE) - .one() - ) - except NoResultFound: - return None - - @classmethod - def _get_portfolio_role(cls, user, portfolio_id): - try: - existing_portfolio_role = ( - db.session.query(PortfolioRole) - .filter( - PortfolioRole.user == user, - PortfolioRole.portfolio_id == portfolio_id, - ) - .one() - ) - return existing_portfolio_role - except NoResultFound: - raise NotFoundError("portfolio role") - @classmethod def add(cls, user, portfolio_id, permission_sets=None): new_portfolio_role = None diff --git a/atst/domain/portfolios/portfolios.py b/atst/domain/portfolios/portfolios.py index 25da6249..0e64cbfc 100644 --- a/atst/domain/portfolios/portfolios.py +++ b/atst/domain/portfolios/portfolios.py @@ -3,7 +3,6 @@ from atst.domain.permission_sets import PermissionSets from atst.domain.authz import Authorization from atst.domain.portfolio_roles import PortfolioRoles from atst.domain.invitations import PortfolioInvitations -from atst.domain.environments import Environments from atst.models import Permissions, PortfolioRole, PortfolioRoleStatus from .query import PortfoliosQuery @@ -109,25 +108,3 @@ class Portfolios(object): portfolio.name = new_data["name"] PortfoliosQuery.add_and_commit(portfolio) - - @classmethod - def can_revoke_access_for(cls, portfolio, portfolio_role): - return ( - portfolio_role.user != portfolio.owner - and portfolio_role.status == PortfolioRoleStatus.ACTIVE - ) - - @classmethod - def revoke_access(cls, portfolio_id, portfolio_role_id): - portfolio = PortfoliosQuery.get(portfolio_id) - portfolio_role = PortfolioRoles.get_by_id(portfolio_role_id) - - if not Portfolios.can_revoke_access_for(portfolio, portfolio_role): - raise PortfolioError("cannot revoke portfolio access for this user") - - portfolio_role.status = PortfolioRoleStatus.DISABLED - for environment in portfolio.all_environments: - Environments.revoke_access(environment, portfolio_role.user) - PortfoliosQuery.add_and_commit(portfolio_role) - - return portfolio_role diff --git a/atst/domain/task_orders.py b/atst/domain/task_orders.py index c5d45abd..2836fdbe 100644 --- a/atst/domain/task_orders.py +++ b/atst/domain/task_orders.py @@ -7,10 +7,6 @@ from atst.models.task_order import TaskOrder, SORT_ORDERING from . import BaseDomainClass -class TaskOrderError(Exception): - pass - - class TaskOrders(BaseDomainClass): model = TaskOrder resource_name = "task_order" diff --git a/tests/domain/test_portfolios.py b/tests/domain/test_portfolios.py index d779d07b..473f85de 100644 --- a/tests/domain/test_portfolios.py +++ b/tests/domain/test_portfolios.py @@ -164,34 +164,6 @@ def test_can_create_portfolios_with_matching_names(): PortfolioFactory.create(name=portfolio_name) -def test_able_to_revoke_portfolio_access_for_active_member(): - portfolio = PortfolioFactory.create() - portfolio_role = PortfolioRoleFactory.create( - portfolio=portfolio, status=PortfolioRoleStatus.ACTIVE - ) - Portfolios.revoke_access(portfolio.id, portfolio_role.id) - assert Portfolios.for_user(portfolio_role.user) == [] - - -def test_can_revoke_access(): - portfolio = PortfolioFactory.create() - owner_role = portfolio.roles[0] - portfolio_role = PortfolioRoleFactory.create( - portfolio=portfolio, status=PortfolioRoleStatus.ACTIVE - ) - - assert Portfolios.can_revoke_access_for(portfolio, portfolio_role) - assert not Portfolios.can_revoke_access_for(portfolio, owner_role) - - -def test_unable_to_revoke_owner_portfolio_access(): - portfolio = PortfolioFactory.create() - owner_portfolio_role = portfolio.roles[0] - - with pytest.raises(PortfolioError): - Portfolios.revoke_access(portfolio.id, owner_portfolio_role.id) - - def test_disabled_members_dont_show_up(session): portfolio = PortfolioFactory.create() PortfolioRoleFactory.create(portfolio=portfolio, status=PortfolioRoleStatus.ACTIVE)