implement PermissionSets.get_many for getting multiple permission sets by name
This commit is contained in:
@@ -30,6 +30,14 @@ class PermissionSets(object):
|
||||
def get_all(cls):
|
||||
return db.session.query(PermissionSet).all()
|
||||
|
||||
@classmethod
|
||||
def get_many(cls, perms_set_names):
|
||||
return (
|
||||
db.session.query(PermissionSet)
|
||||
.filter(PermissionSet.name.in_(perms_set_names))
|
||||
.all()
|
||||
)
|
||||
|
||||
|
||||
ATAT_ROLES = [
|
||||
{
|
||||
|
@@ -101,16 +101,25 @@ class PortfolioRoles(object):
|
||||
PermissionSets.VIEW_PORTFOLIO_FUNDING,
|
||||
PermissionSets.VIEW_PORTFOLIO_REPORTS,
|
||||
PermissionSets.VIEW_PORTFOLIO_ADMIN,
|
||||
PermissionSets.VIEW_PORTFOLIO,
|
||||
}
|
||||
|
||||
PORTFOLIO_PERMISSION_SETS = DEFAULT_PORTFOLIO_PERMISSION_SETS.union(
|
||||
{
|
||||
PermissionSets.EDIT_PORTFOLIO_APPLICATION_MANAGEMENT,
|
||||
PermissionSets.EDIT_PORTFOLIO_FUNDING,
|
||||
PermissionSets.EDIT_PORTFOLIO_REPORTS,
|
||||
PermissionSets.EDIT_PORTFOLIO_ADMIN,
|
||||
PermissionSets.PORTFOLIO_POC,
|
||||
}
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def _permission_sets_for_names(cls, set_names):
|
||||
perms_set_names = PortfolioRoles.DEFAULT_PORTFOLIO_PERMISSION_SETS.union(
|
||||
set(set_names)
|
||||
)
|
||||
return [
|
||||
PermissionSets.get(perms_set_name) for perms_set_name in perms_set_names
|
||||
]
|
||||
return PermissionSets.get_many(perms_set_names)
|
||||
|
||||
@classmethod
|
||||
def update(cls, portfolio_role, set_names):
|
||||
|
@@ -1,4 +1,4 @@
|
||||
from atst.domain.permission_sets import PermissionSets, PORTFOLIO_PERMISSION_SETS
|
||||
from atst.domain.permission_sets import PermissionSets
|
||||
from atst.domain.authz import Authorization
|
||||
from atst.models.permissions import Permissions
|
||||
from atst.domain.users import Users
|
||||
@@ -20,9 +20,7 @@ class Portfolios(object):
|
||||
portfolio = PortfoliosQuery.create(
|
||||
name=name, defense_component=defense_component
|
||||
)
|
||||
perms_sets = [
|
||||
PermissionSets.get(prms["name"]) for prms in PORTFOLIO_PERMISSION_SETS
|
||||
]
|
||||
perms_sets = PermissionSets.get_many(PortfolioRoles.PORTFOLIO_PERMISSION_SETS)
|
||||
Portfolios._create_portfolio_role(
|
||||
user,
|
||||
portfolio,
|
||||
|
Reference in New Issue
Block a user