organize portfolio permission sets by domain
This commit is contained in:
parent
78aa2dfcc6
commit
ee37a5543a
@ -81,13 +81,16 @@ ATAT_ROLES = [
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
_VIEW_PORTFOLIO_PERMISSION_SETS = [
|
_PORTFOLIO_BASIC_PERMISSION_SETS = [
|
||||||
{
|
{
|
||||||
"name": PermissionSets.VIEW_PORTFOLIO,
|
"name": PermissionSets.VIEW_PORTFOLIO,
|
||||||
"description": "View basic portfolio info",
|
"description": "View basic portfolio info",
|
||||||
"display_name": "View Portfolio",
|
"display_name": "View Portfolio",
|
||||||
"permissions": [Permissions.VIEW_PORTFOLIO],
|
"permissions": [Permissions.VIEW_PORTFOLIO],
|
||||||
},
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
_PORTFOLIO_APP_MGMT_PERMISSION_SETS = [
|
||||||
{
|
{
|
||||||
"name": PermissionSets.VIEW_PORTFOLIO_APPLICATION_MANAGEMENT,
|
"name": PermissionSets.VIEW_PORTFOLIO_APPLICATION_MANAGEMENT,
|
||||||
"description": "View applications and related resources",
|
"description": "View applications and related resources",
|
||||||
@ -98,36 +101,6 @@ _VIEW_PORTFOLIO_PERMISSION_SETS = [
|
|||||||
Permissions.VIEW_ENVIRONMENT,
|
Permissions.VIEW_ENVIRONMENT,
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": PermissionSets.VIEW_PORTFOLIO_FUNDING,
|
|
||||||
"description": "View a portfolio's task orders",
|
|
||||||
"display_name": "Funding",
|
|
||||||
"permissions": [
|
|
||||||
Permissions.VIEW_PORTFOLIO_FUNDING,
|
|
||||||
Permissions.VIEW_TASK_ORDER_DETAILS,
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": PermissionSets.VIEW_PORTFOLIO_REPORTS,
|
|
||||||
"description": "View a portfolio's reports",
|
|
||||||
"display_name": "Reporting",
|
|
||||||
"permissions": [Permissions.VIEW_PORTFOLIO_REPORTS],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": PermissionSets.VIEW_PORTFOLIO_ADMIN,
|
|
||||||
"description": "View a portfolio's admin options",
|
|
||||||
"display_name": "Portfolio Administration",
|
|
||||||
"permissions": [
|
|
||||||
Permissions.VIEW_PORTFOLIO_ADMIN,
|
|
||||||
Permissions.VIEW_PORTFOLIO_NAME,
|
|
||||||
Permissions.VIEW_PORTFOLIO_USERS,
|
|
||||||
Permissions.VIEW_PORTFOLIO_ACTIVITY_LOG,
|
|
||||||
Permissions.VIEW_PORTFOLIO_POC,
|
|
||||||
],
|
|
||||||
},
|
|
||||||
]
|
|
||||||
|
|
||||||
_EDIT_PORTFOLIO_PERMISSION_SETS = [
|
|
||||||
{
|
{
|
||||||
"name": PermissionSets.EDIT_PORTFOLIO_APPLICATION_MANAGEMENT,
|
"name": PermissionSets.EDIT_PORTFOLIO_APPLICATION_MANAGEMENT,
|
||||||
"description": "Edit applications and related resources",
|
"description": "Edit applications and related resources",
|
||||||
@ -141,6 +114,18 @@ _EDIT_PORTFOLIO_PERMISSION_SETS = [
|
|||||||
Permissions.CREATE_ENVIRONMENT,
|
Permissions.CREATE_ENVIRONMENT,
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
_PORTFOLIO_FUNDING_PERMISSION_SETS = [
|
||||||
|
{
|
||||||
|
"name": PermissionSets.VIEW_PORTFOLIO_FUNDING,
|
||||||
|
"description": "View a portfolio's task orders",
|
||||||
|
"display_name": "Funding",
|
||||||
|
"permissions": [
|
||||||
|
Permissions.VIEW_PORTFOLIO_FUNDING,
|
||||||
|
Permissions.VIEW_TASK_ORDER_DETAILS,
|
||||||
|
],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": PermissionSets.EDIT_PORTFOLIO_FUNDING,
|
"name": PermissionSets.EDIT_PORTFOLIO_FUNDING,
|
||||||
"description": "Edit a portfolio's task orders and add new ones",
|
"description": "Edit a portfolio's task orders and add new ones",
|
||||||
@ -150,12 +135,36 @@ _EDIT_PORTFOLIO_PERMISSION_SETS = [
|
|||||||
Permissions.EDIT_TASK_ORDER_DETAILS,
|
Permissions.EDIT_TASK_ORDER_DETAILS,
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
_PORTFOLIO_REPORTS_PERMISSION_SETS = [
|
||||||
|
{
|
||||||
|
"name": PermissionSets.VIEW_PORTFOLIO_REPORTS,
|
||||||
|
"description": "View a portfolio's reports",
|
||||||
|
"display_name": "Reporting",
|
||||||
|
"permissions": [Permissions.VIEW_PORTFOLIO_REPORTS],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": PermissionSets.EDIT_PORTFOLIO_REPORTS,
|
"name": PermissionSets.EDIT_PORTFOLIO_REPORTS,
|
||||||
"description": "Edit a portfolio's reports (no-op)",
|
"description": "Edit a portfolio's reports (no-op)",
|
||||||
"display_name": "Reporting",
|
"display_name": "Reporting",
|
||||||
"permissions": [],
|
"permissions": [],
|
||||||
},
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
_PORTFOLIO_ADMIN_PERMISSION_SETS = [
|
||||||
|
{
|
||||||
|
"name": PermissionSets.VIEW_PORTFOLIO_ADMIN,
|
||||||
|
"description": "View a portfolio's admin options",
|
||||||
|
"display_name": "Portfolio Administration",
|
||||||
|
"permissions": [
|
||||||
|
Permissions.VIEW_PORTFOLIO_ADMIN,
|
||||||
|
Permissions.VIEW_PORTFOLIO_NAME,
|
||||||
|
Permissions.VIEW_PORTFOLIO_USERS,
|
||||||
|
Permissions.VIEW_PORTFOLIO_ACTIVITY_LOG,
|
||||||
|
Permissions.VIEW_PORTFOLIO_POC,
|
||||||
|
],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": PermissionSets.EDIT_PORTFOLIO_ADMIN,
|
"name": PermissionSets.EDIT_PORTFOLIO_ADMIN,
|
||||||
"description": "Edit a portfolio's admin options",
|
"description": "Edit a portfolio's admin options",
|
||||||
@ -168,18 +177,20 @@ _EDIT_PORTFOLIO_PERMISSION_SETS = [
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
_PORTFOLIO_POC_PERMISSION_SETS = [
|
||||||
|
{
|
||||||
|
"name": "portfolio_poc",
|
||||||
|
"description": "Permissions belonging to the Portfolio POC",
|
||||||
|
"display_name": "Portfolio Point of Contact",
|
||||||
|
"permissions": [Permissions.EDIT_PORTFOLIO_POC, Permissions.ARCHIVE_PORTFOLIO],
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
PORTFOLIO_PERMISSION_SETS = (
|
PORTFOLIO_PERMISSION_SETS = (
|
||||||
_VIEW_PORTFOLIO_PERMISSION_SETS
|
_PORTFOLIO_BASIC_PERMISSION_SETS
|
||||||
+ _EDIT_PORTFOLIO_PERMISSION_SETS
|
+ _PORTFOLIO_APP_MGMT_PERMISSION_SETS
|
||||||
+ [
|
+ _PORTFOLIO_FUNDING_PERMISSION_SETS
|
||||||
{
|
+ _PORTFOLIO_REPORTS_PERMISSION_SETS
|
||||||
"name": "portfolio_poc",
|
+ _PORTFOLIO_ADMIN_PERMISSION_SETS
|
||||||
"description": "Permissions belonging to the Portfolio POC",
|
+ _PORTFOLIO_POC_PERMISSION_SETS
|
||||||
"display_name": "Portfolio Point of Contact",
|
|
||||||
"permissions": [
|
|
||||||
Permissions.EDIT_PORTFOLIO_POC,
|
|
||||||
Permissions.ARCHIVE_PORTFOLIO,
|
|
||||||
],
|
|
||||||
}
|
|
||||||
]
|
|
||||||
)
|
)
|
||||||
|
@ -96,7 +96,7 @@ class PortfolioRoles(object):
|
|||||||
|
|
||||||
return new_portfolio_role
|
return new_portfolio_role
|
||||||
|
|
||||||
_DEFAULT_PORTFOLIO_PERMS_SETS = {
|
DEFAULT_PORTFOLIO_PERMISSION_SETS = {
|
||||||
PermissionSets.VIEW_PORTFOLIO_APPLICATION_MANAGEMENT,
|
PermissionSets.VIEW_PORTFOLIO_APPLICATION_MANAGEMENT,
|
||||||
PermissionSets.VIEW_PORTFOLIO_FUNDING,
|
PermissionSets.VIEW_PORTFOLIO_FUNDING,
|
||||||
PermissionSets.VIEW_PORTFOLIO_REPORTS,
|
PermissionSets.VIEW_PORTFOLIO_REPORTS,
|
||||||
@ -105,7 +105,7 @@ class PortfolioRoles(object):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _permission_sets_for_names(cls, set_names):
|
def _permission_sets_for_names(cls, set_names):
|
||||||
perms_set_names = PortfolioRoles._DEFAULT_PORTFOLIO_PERMS_SETS.union(
|
perms_set_names = PortfolioRoles.DEFAULT_PORTFOLIO_PERMISSION_SETS.union(
|
||||||
set(set_names)
|
set(set_names)
|
||||||
)
|
)
|
||||||
return [
|
return [
|
||||||
|
@ -2,7 +2,8 @@ import pytest
|
|||||||
|
|
||||||
from atst.domain.task_orders import TaskOrders, TaskOrderError, DD254s
|
from atst.domain.task_orders import TaskOrders, TaskOrderError, DD254s
|
||||||
from atst.domain.exceptions import UnauthorizedError
|
from atst.domain.exceptions import UnauthorizedError
|
||||||
from atst.domain.permission_sets import PermissionSets, _VIEW_PORTFOLIO_PERMISSION_SETS
|
from atst.domain.permission_sets import PermissionSets
|
||||||
|
from atst.domain.portfolio_roles import PortfolioRoles
|
||||||
from atst.models.attachment import Attachment
|
from atst.models.attachment import Attachment
|
||||||
|
|
||||||
from tests.factories import (
|
from tests.factories import (
|
||||||
@ -116,7 +117,8 @@ def test_task_order_access():
|
|||||||
user=member,
|
user=member,
|
||||||
portfolio=task_order.portfolio,
|
portfolio=task_order.portfolio,
|
||||||
permission_sets=[
|
permission_sets=[
|
||||||
PermissionSets.get(prms["name"]) for prms in _VIEW_PORTFOLIO_PERMISSION_SETS
|
PermissionSets.get(prms)
|
||||||
|
for prms in PortfolioRoles.DEFAULT_PORTFOLIO_PERMISSION_SETS
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
TaskOrders.add_officer(
|
TaskOrders.add_officer(
|
||||||
|
@ -14,17 +14,13 @@ from atst.models.task_order import TaskOrder
|
|||||||
from atst.models.user import User
|
from atst.models.user import User
|
||||||
from atst.models.permission_set import PermissionSet
|
from atst.models.permission_set import PermissionSet
|
||||||
from atst.models.portfolio import Portfolio
|
from atst.models.portfolio import Portfolio
|
||||||
from atst.domain.permission_sets import (
|
from atst.domain.permission_sets import PermissionSets, PORTFOLIO_PERMISSION_SETS
|
||||||
PermissionSets,
|
|
||||||
PORTFOLIO_PERMISSION_SETS,
|
|
||||||
_VIEW_PORTFOLIO_PERMISSION_SETS,
|
|
||||||
_EDIT_PORTFOLIO_PERMISSION_SETS,
|
|
||||||
)
|
|
||||||
from atst.models.portfolio_role import PortfolioRole, Status as PortfolioRoleStatus
|
from atst.models.portfolio_role import PortfolioRole, Status as PortfolioRoleStatus
|
||||||
from atst.models.environment_role import EnvironmentRole
|
from atst.models.environment_role import EnvironmentRole
|
||||||
from atst.models.invitation import Invitation, Status as InvitationStatus
|
from atst.models.invitation import Invitation, Status as InvitationStatus
|
||||||
from atst.models.dd_254 import DD254
|
from atst.models.dd_254 import DD254
|
||||||
from atst.domain.invitations import Invitations
|
from atst.domain.invitations import Invitations
|
||||||
|
from atst.domain.portfolio_roles import PortfolioRoles
|
||||||
|
|
||||||
|
|
||||||
def random_choice(choices):
|
def random_choice(choices):
|
||||||
@ -70,7 +66,8 @@ def _random_date(year_min, year_max, operation):
|
|||||||
|
|
||||||
def base_portfolio_permission_sets():
|
def base_portfolio_permission_sets():
|
||||||
return [
|
return [
|
||||||
PermissionSets.get(prms["name"]) for prms in _VIEW_PORTFOLIO_PERMISSION_SETS
|
PermissionSets.get(prms)
|
||||||
|
for prms in PortfolioRoles.DEFAULT_PORTFOLIO_PERMISSION_SETS
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user