Merge pull request #2945 from cisagov/dk/2763-member-expand

#2763: Expanded row functionality
This commit is contained in:
dave-kennedy-ecs 2024-10-23 16:23:21 -04:00 committed by GitHub
commit fd9eb0da58
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 668 additions and 125 deletions

View file

@ -92,16 +92,18 @@ class UserPortfolioPermission(TimeStampedModel):
"""
Retrieve the permissions for the user's portfolio roles.
"""
return self.get_portfolio_permissions(self.roles, self.additional_permissions)
@classmethod
def get_portfolio_permissions(cls, roles, additional_permissions):
"""Class method to return a list of permissions based on roles and addtl permissions"""
# Use a set to avoid duplicate permissions
portfolio_permissions = set()
if self.roles:
for role in self.roles:
portfolio_permissions.update(self.PORTFOLIO_ROLE_PERMISSIONS.get(role, []))
if self.additional_permissions:
portfolio_permissions.update(self.additional_permissions)
if roles:
for role in roles:
portfolio_permissions.update(cls.PORTFOLIO_ROLE_PERMISSIONS.get(role, []))
if additional_permissions:
portfolio_permissions.update(additional_permissions)
return list(portfolio_permissions)
def clean(self):