Applications.for_user returns user's portfolio applications.

The method has been updated to that, given a user and portfolio, it
returns the portfolio applications for which the user has an application
role.
This commit is contained in:
dandds
2019-05-03 08:13:56 -04:00
parent a2ebdf78a0
commit 8bd945d0d4
2 changed files with 33 additions and 7 deletions

View File

@@ -6,9 +6,7 @@ from atst.domain.application_roles import ApplicationRoles
from atst.domain.environments import Environments
from atst.domain.exceptions import NotFoundError
from atst.domain.users import Users
from atst.models.application import Application
from atst.models.environment import Environment
from atst.models.environment_role import EnvironmentRole
from atst.models import Application, ApplicationRole, ApplicationRoleStatus
class Applications(BaseDomainClass):
@@ -31,10 +29,11 @@ class Applications(BaseDomainClass):
def for_user(self, user, portfolio):
return (
db.session.query(Application)
.join(Environment)
.join(EnvironmentRole)
.join(ApplicationRole)
.filter(Application.portfolio_id == portfolio.id)
.filter(EnvironmentRole.user_id == user.id)
.filter(ApplicationRole.application_id == Application.id)
.filter(ApplicationRole.user_id == user.id)
.filter(ApplicationRole.status == ApplicationRoleStatus.ACTIVE)
.all()
)