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)
|
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):
|
def __repr__(self):
|
||||||
return "<PortfolioRole(role='{}', portfolio='{}', user_id='{}', id='{}')>".format(
|
return "<PortfolioRole(role='{}', portfolio='{}', user_id='{}', id='{}')>".format(
|
||||||
self.role.name, self.portfolio.name, self.user_id, self.id
|
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.environments import Environments
|
||||||
from atst.domain.portfolios import Portfolios
|
from atst.domain.portfolios import Portfolios
|
||||||
from atst.domain.applications import Applications
|
from atst.domain.applications import Applications
|
||||||
|
from atst.domain.roles import Roles
|
||||||
from atst.models.portfolio_role import Status
|
from atst.models.portfolio_role import Status
|
||||||
from atst.models.role import Role
|
from atst.models.role import Role
|
||||||
from atst.models.invitation import Status as InvitationStatus
|
from atst.models.invitation import Status as InvitationStatus
|
||||||
@ -298,3 +299,11 @@ def test_can_list_all_environments():
|
|||||||
)
|
)
|
||||||
|
|
||||||
assert len(portfolio.all_environments) == 9
|
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