portfolio role knows its entire permissions list

This commit is contained in:
dandds 2019-03-10 15:21:52 -04:00
parent 8af3986a2d
commit 6805041b13
2 changed files with 15 additions and 0 deletions

View File

@ -58,6 +58,12 @@ class PortfolioRole(Base, mixins.TimestampsMixin, mixins.AuditableMixin):
permission_sets = relationship("Role", secondary=portfolio_roles_roles)
@property
def permissions(self):
return [
perm for permset in self.permission_sets for perm in permset.permissions
]
def __repr__(self):
return "<PortfolioRole(role='{}', portfolio='{}', user_id='{}', id='{}')>".format(
self.role.name, self.portfolio.name, self.user_id, self.id

View File

@ -3,6 +3,7 @@ import datetime
from atst.domain.environments import Environments
from atst.domain.portfolios import Portfolios
from atst.domain.applications import Applications
from atst.domain.roles import Roles
from atst.models.portfolio_role import Status
from atst.models.role import Role
from atst.models.invitation import Status as InvitationStatus
@ -298,3 +299,11 @@ def test_can_list_all_environments():
)
assert len(portfolio.all_environments) == 9
def test_can_list_all_permissions():
role_one = Roles.get("view_portfolio_funding")
role_two = Roles.get("view_portfolio_reports")
port_role = PortfolioRoleFactory.create(permission_sets=[role_one, role_two])
expected_perms = role_one.permissions + role_two.permissions
assert expected_perms == expected_perms