portfolio role knows its entire permissions list
This commit is contained in:
parent
8af3986a2d
commit
6805041b13
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user