Merge pull request #919 from dod-ccpo/remove-domain-methods
Remove unused domain methods
This commit is contained in:
commit
b1030a736f
@ -1,5 +1,3 @@
|
|||||||
from sqlalchemy.orm.exc import NoResultFound
|
|
||||||
|
|
||||||
from . import BaseDomainClass
|
from . import BaseDomainClass
|
||||||
from atst.database import db
|
from atst.database import db
|
||||||
from atst.domain.application_roles import ApplicationRoles
|
from atst.domain.application_roles import ApplicationRoles
|
||||||
@ -44,17 +42,6 @@ class Applications(BaseDomainClass):
|
|||||||
.all()
|
.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
|
@classmethod
|
||||||
def update(cls, application, new_data):
|
def update(cls, application, new_data):
|
||||||
if "name" in new_data:
|
if "name" in new_data:
|
||||||
|
@ -28,14 +28,6 @@ class Environments(object):
|
|||||||
db.session.add_all(environments)
|
db.session.add_all(environments)
|
||||||
return 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
|
@classmethod
|
||||||
def update(cls, environment, name=None):
|
def update(cls, environment, name=None):
|
||||||
if name is not None:
|
if name is not None:
|
||||||
|
@ -1,22 +1,13 @@
|
|||||||
from sqlalchemy.orm.exc import NoResultFound
|
from sqlalchemy.orm.exc import NoResultFound
|
||||||
|
|
||||||
from atst.database import db
|
from atst.database import db
|
||||||
from atst.models.portfolio_role import (
|
from atst.models.portfolio_role import PortfolioRole, Status as PortfolioRoleStatus
|
||||||
PortfolioRole,
|
|
||||||
Status as PortfolioRoleStatus,
|
|
||||||
MEMBER_STATUSES,
|
|
||||||
)
|
|
||||||
from atst.models.user import User
|
from atst.models.user import User
|
||||||
|
|
||||||
from .permission_sets import PermissionSets
|
from .permission_sets import PermissionSets
|
||||||
from .exceptions import NotFoundError
|
from .exceptions import NotFoundError
|
||||||
|
|
||||||
|
|
||||||
MEMBER_STATUS_CHOICES = [
|
|
||||||
dict(name=key, display_name=value) for key, value in MEMBER_STATUSES.items()
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
class PortfolioRoles(object):
|
class PortfolioRoles(object):
|
||||||
@classmethod
|
@classmethod
|
||||||
def get(cls, portfolio_id, user_id):
|
def get(cls, portfolio_id, user_id):
|
||||||
@ -39,34 +30,6 @@ class PortfolioRoles(object):
|
|||||||
except NoResultFound:
|
except NoResultFound:
|
||||||
raise NotFoundError("portfolio_role")
|
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
|
@classmethod
|
||||||
def add(cls, user, portfolio_id, permission_sets=None):
|
def add(cls, user, portfolio_id, permission_sets=None):
|
||||||
new_portfolio_role = None
|
new_portfolio_role = None
|
||||||
|
@ -3,7 +3,6 @@ from atst.domain.permission_sets import PermissionSets
|
|||||||
from atst.domain.authz import Authorization
|
from atst.domain.authz import Authorization
|
||||||
from atst.domain.portfolio_roles import PortfolioRoles
|
from atst.domain.portfolio_roles import PortfolioRoles
|
||||||
from atst.domain.invitations import PortfolioInvitations
|
from atst.domain.invitations import PortfolioInvitations
|
||||||
from atst.domain.environments import Environments
|
|
||||||
from atst.models import Permissions, PortfolioRole, PortfolioRoleStatus
|
from atst.models import Permissions, PortfolioRole, PortfolioRoleStatus
|
||||||
|
|
||||||
from .query import PortfoliosQuery
|
from .query import PortfoliosQuery
|
||||||
@ -109,25 +108,3 @@ class Portfolios(object):
|
|||||||
portfolio.name = new_data["name"]
|
portfolio.name = new_data["name"]
|
||||||
|
|
||||||
PortfoliosQuery.add_and_commit(portfolio)
|
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
|
|
||||||
|
@ -7,10 +7,6 @@ from atst.models.task_order import TaskOrder, SORT_ORDERING
|
|||||||
from . import BaseDomainClass
|
from . import BaseDomainClass
|
||||||
|
|
||||||
|
|
||||||
class TaskOrderError(Exception):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class TaskOrders(BaseDomainClass):
|
class TaskOrders(BaseDomainClass):
|
||||||
model = TaskOrder
|
model = TaskOrder
|
||||||
resource_name = "task_order"
|
resource_name = "task_order"
|
||||||
|
@ -164,34 +164,6 @@ def test_can_create_portfolios_with_matching_names():
|
|||||||
PortfolioFactory.create(name=portfolio_name)
|
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):
|
def test_disabled_members_dont_show_up(session):
|
||||||
portfolio = PortfolioFactory.create()
|
portfolio = PortfolioFactory.create()
|
||||||
PortfolioRoleFactory.create(portfolio=portfolio, status=PortfolioRoleStatus.ACTIVE)
|
PortfolioRoleFactory.create(portfolio=portfolio, status=PortfolioRoleStatus.ACTIVE)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user