@esri/hub-common 13.37.2 → 13.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/ArcGISContext.js +31 -0
- package/dist/esm/ArcGISContext.js.map +1 -1
- package/dist/esm/ArcGISContextManager.js +44 -0
- package/dist/esm/ArcGISContextManager.js.map +1 -1
- package/dist/esm/capabilities/_internal/checkCapabilityAccess.js +2 -0
- package/dist/esm/capabilities/_internal/checkCapabilityAccess.js.map +1 -1
- package/dist/esm/capabilities/checkCapability.js +2 -0
- package/dist/esm/capabilities/checkCapability.js.map +1 -1
- package/dist/esm/capabilities/getWorkspaceCapabilities.js +3 -1
- package/dist/esm/capabilities/getWorkspaceCapabilities.js.map +1 -1
- package/dist/esm/capabilities/processEntityCapabilities.js +2 -0
- package/dist/esm/capabilities/processEntityCapabilities.js.map +1 -1
- package/dist/esm/content/_internal/ContentBusinessRules.js +6 -6
- package/dist/esm/content/_internal/ContentBusinessRules.js.map +1 -1
- package/dist/esm/content/_internal/getPropertyMap.js +1 -0
- package/dist/esm/content/_internal/getPropertyMap.js.map +1 -1
- package/dist/esm/core/EntityEditor.js +4 -0
- package/dist/esm/core/EntityEditor.js.map +1 -1
- package/dist/esm/core/HubItemEntity.js +3 -0
- package/dist/esm/core/HubItemEntity.js.map +1 -1
- package/dist/esm/core/_internal/getBasePropertyMap.js +1 -0
- package/dist/esm/core/_internal/getBasePropertyMap.js.map +1 -1
- package/dist/esm/core/schemas/getEntityEditorSchemas.js +7 -0
- package/dist/esm/core/schemas/getEntityEditorSchemas.js.map +1 -1
- package/dist/esm/core/schemas/internal/getEditorConfigOptions.js +6 -0
- package/dist/esm/core/schemas/internal/getEditorConfigOptions.js.map +1 -1
- package/dist/esm/core/schemas/internal/getEntityEditorSchemas.js +7 -0
- package/dist/esm/core/schemas/internal/getEntityEditorSchemas.js.map +1 -1
- package/dist/esm/core/schemas/types.js +2 -0
- package/dist/esm/core/schemas/types.js.map +1 -1
- package/dist/esm/core/types/ISystemStatus.js +20 -0
- package/dist/esm/core/types/ISystemStatus.js.map +1 -1
- package/dist/esm/core/types/index.js +1 -0
- package/dist/esm/core/types/index.js.map +1 -1
- package/dist/esm/discussions/_internal/DiscussionBusinessRules.js +11 -4
- package/dist/esm/discussions/_internal/DiscussionBusinessRules.js.map +1 -1
- package/dist/esm/groups/HubGroup.js +78 -0
- package/dist/esm/groups/HubGroup.js.map +1 -1
- package/dist/esm/groups/HubGroups.js +2 -36
- package/dist/esm/groups/HubGroups.js.map +1 -1
- package/dist/esm/groups/_internal/GroupBusinessRules.js +12 -6
- package/dist/esm/groups/_internal/GroupBusinessRules.js.map +1 -1
- package/dist/esm/groups/_internal/GroupSchema.js +17 -0
- package/dist/esm/groups/_internal/GroupSchema.js.map +1 -0
- package/dist/esm/groups/_internal/GroupUiSchemaEdit.js +58 -0
- package/dist/esm/groups/_internal/GroupUiSchemaEdit.js.map +1 -0
- package/dist/esm/groups/_internal/convertGroupToHubGroup.js +14 -0
- package/dist/esm/groups/_internal/convertGroupToHubGroup.js.map +1 -0
- package/dist/esm/groups/_internal/convertHubGroupToGroup.js +26 -0
- package/dist/esm/groups/_internal/convertHubGroupToGroup.js.map +1 -0
- package/dist/esm/groups/deleteGroupThumbnail.js +14 -0
- package/dist/esm/groups/deleteGroupThumbnail.js.map +1 -0
- package/dist/esm/groups/setGroupThumbnail.js +32 -0
- package/dist/esm/groups/setGroupThumbnail.js.map +1 -0
- package/dist/esm/initiatives/_internal/InitiativeBusinessRules.js +36 -8
- package/dist/esm/initiatives/_internal/InitiativeBusinessRules.js.map +1 -1
- package/dist/esm/initiatives/_internal/computeProps.js +8 -2
- package/dist/esm/initiatives/_internal/computeProps.js.map +1 -1
- package/dist/esm/initiatives/defaults.js +2 -0
- package/dist/esm/initiatives/defaults.js.map +1 -1
- package/dist/esm/pages/_internal/PageBusinessRules.js +17 -11
- package/dist/esm/pages/_internal/PageBusinessRules.js.map +1 -1
- package/dist/esm/pages/_internal/computeProps.js +9 -2
- package/dist/esm/pages/_internal/computeProps.js.map +1 -1
- package/dist/esm/permissions/_internal/checkAlphaGating.js +3 -1
- package/dist/esm/permissions/_internal/checkAlphaGating.js.map +1 -1
- package/dist/esm/permissions/_internal/checkAvailability.js +46 -0
- package/dist/esm/permissions/_internal/checkAvailability.js.map +1 -0
- package/dist/esm/permissions/_internal/checkEntityFeature.js +26 -0
- package/dist/esm/permissions/_internal/checkEntityFeature.js.map +1 -0
- package/dist/esm/permissions/_internal/checkEnvironment.js +28 -0
- package/dist/esm/permissions/_internal/checkEnvironment.js.map +1 -0
- package/dist/esm/permissions/_internal/checkParents.js +23 -0
- package/dist/esm/permissions/_internal/checkParents.js.map +1 -0
- package/dist/esm/permissions/_internal/checkServiceStatus.js +24 -0
- package/dist/esm/permissions/_internal/checkServiceStatus.js.map +1 -0
- package/dist/esm/permissions/_internal/getPolicyResponseCode.js +8 -0
- package/dist/esm/permissions/_internal/getPolicyResponseCode.js.map +1 -1
- package/dist/esm/permissions/_internal/processEntityFeatures.js +26 -0
- package/dist/esm/permissions/_internal/processEntityFeatures.js.map +1 -0
- package/dist/esm/permissions/checkPermission.js +10 -0
- package/dist/esm/permissions/checkPermission.js.map +1 -1
- package/dist/esm/projects/_internal/ProjectBusinessRules.js +37 -11
- package/dist/esm/projects/_internal/ProjectBusinessRules.js.map +1 -1
- package/dist/esm/projects/_internal/computeProps.js +8 -2
- package/dist/esm/projects/_internal/computeProps.js.map +1 -1
- package/dist/esm/projects/defaults.js +2 -0
- package/dist/esm/projects/defaults.js.map +1 -1
- package/dist/esm/sites/_internal/SiteBusinessRules.js +37 -8
- package/dist/esm/sites/_internal/SiteBusinessRules.js.map +1 -1
- package/dist/esm/sites/_internal/computeProps.js +8 -2
- package/dist/esm/sites/_internal/computeProps.js.map +1 -1
- package/dist/esm/sites/defaults.js +2 -0
- package/dist/esm/sites/defaults.js.map +1 -1
- package/dist/esm/utils/getEnvironmentFromPortalUrl.js +20 -0
- package/dist/esm/utils/getEnvironmentFromPortalUrl.js.map +1 -0
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/node/ArcGISContext.js +31 -0
- package/dist/node/ArcGISContext.js.map +1 -1
- package/dist/node/ArcGISContextManager.js +44 -0
- package/dist/node/ArcGISContextManager.js.map +1 -1
- package/dist/node/capabilities/_internal/checkCapabilityAccess.js +2 -0
- package/dist/node/capabilities/_internal/checkCapabilityAccess.js.map +1 -1
- package/dist/node/capabilities/checkCapability.js +2 -0
- package/dist/node/capabilities/checkCapability.js.map +1 -1
- package/dist/node/capabilities/getWorkspaceCapabilities.js +3 -1
- package/dist/node/capabilities/getWorkspaceCapabilities.js.map +1 -1
- package/dist/node/capabilities/processEntityCapabilities.js +2 -0
- package/dist/node/capabilities/processEntityCapabilities.js.map +1 -1
- package/dist/node/content/_internal/ContentBusinessRules.js +6 -6
- package/dist/node/content/_internal/ContentBusinessRules.js.map +1 -1
- package/dist/node/content/_internal/getPropertyMap.js +1 -0
- package/dist/node/content/_internal/getPropertyMap.js.map +1 -1
- package/dist/node/core/EntityEditor.js +4 -0
- package/dist/node/core/EntityEditor.js.map +1 -1
- package/dist/node/core/HubItemEntity.js +3 -0
- package/dist/node/core/HubItemEntity.js.map +1 -1
- package/dist/node/core/_internal/getBasePropertyMap.js +1 -0
- package/dist/node/core/_internal/getBasePropertyMap.js.map +1 -1
- package/dist/node/core/schemas/getEntityEditorSchemas.js +7 -0
- package/dist/node/core/schemas/getEntityEditorSchemas.js.map +1 -1
- package/dist/node/core/schemas/internal/getEditorConfigOptions.js +6 -0
- package/dist/node/core/schemas/internal/getEditorConfigOptions.js.map +1 -1
- package/dist/node/core/schemas/internal/getEntityEditorSchemas.js +7 -0
- package/dist/node/core/schemas/internal/getEntityEditorSchemas.js.map +1 -1
- package/dist/node/core/schemas/types.js +2 -0
- package/dist/node/core/schemas/types.js.map +1 -1
- package/dist/node/core/types/ISystemStatus.js +22 -1
- package/dist/node/core/types/ISystemStatus.js.map +1 -1
- package/dist/node/core/types/index.js +1 -0
- package/dist/node/core/types/index.js.map +1 -1
- package/dist/node/discussions/_internal/DiscussionBusinessRules.js +11 -4
- package/dist/node/discussions/_internal/DiscussionBusinessRules.js.map +1 -1
- package/dist/node/groups/HubGroup.js +78 -0
- package/dist/node/groups/HubGroup.js.map +1 -1
- package/dist/node/groups/HubGroups.js +6 -40
- package/dist/node/groups/HubGroups.js.map +1 -1
- package/dist/node/groups/_internal/GroupBusinessRules.js +12 -6
- package/dist/node/groups/_internal/GroupBusinessRules.js.map +1 -1
- package/dist/node/groups/_internal/GroupSchema.js +20 -0
- package/dist/node/groups/_internal/GroupSchema.js.map +1 -0
- package/dist/node/groups/_internal/GroupUiSchemaEdit.js +61 -0
- package/dist/node/groups/_internal/GroupUiSchemaEdit.js.map +1 -0
- package/dist/node/groups/_internal/convertGroupToHubGroup.js +18 -0
- package/dist/node/groups/_internal/convertGroupToHubGroup.js.map +1 -0
- package/dist/node/groups/_internal/convertHubGroupToGroup.js +30 -0
- package/dist/node/groups/_internal/convertHubGroupToGroup.js.map +1 -0
- package/dist/node/groups/deleteGroupThumbnail.js +18 -0
- package/dist/node/groups/deleteGroupThumbnail.js.map +1 -0
- package/dist/node/groups/setGroupThumbnail.js +36 -0
- package/dist/node/groups/setGroupThumbnail.js.map +1 -0
- package/dist/node/initiatives/_internal/InitiativeBusinessRules.js +37 -9
- package/dist/node/initiatives/_internal/InitiativeBusinessRules.js.map +1 -1
- package/dist/node/initiatives/_internal/computeProps.js +7 -1
- package/dist/node/initiatives/_internal/computeProps.js.map +1 -1
- package/dist/node/initiatives/defaults.js +2 -0
- package/dist/node/initiatives/defaults.js.map +1 -1
- package/dist/node/pages/_internal/PageBusinessRules.js +18 -12
- package/dist/node/pages/_internal/PageBusinessRules.js.map +1 -1
- package/dist/node/pages/_internal/computeProps.js +8 -1
- package/dist/node/pages/_internal/computeProps.js.map +1 -1
- package/dist/node/permissions/_internal/checkAlphaGating.js +3 -1
- package/dist/node/permissions/_internal/checkAlphaGating.js.map +1 -1
- package/dist/node/permissions/_internal/checkAvailability.js +50 -0
- package/dist/node/permissions/_internal/checkAvailability.js.map +1 -0
- package/dist/node/permissions/_internal/checkEntityFeature.js +30 -0
- package/dist/node/permissions/_internal/checkEntityFeature.js.map +1 -0
- package/dist/node/permissions/_internal/checkEnvironment.js +32 -0
- package/dist/node/permissions/_internal/checkEnvironment.js.map +1 -0
- package/dist/node/permissions/_internal/checkParents.js +27 -0
- package/dist/node/permissions/_internal/checkParents.js.map +1 -0
- package/dist/node/permissions/_internal/checkServiceStatus.js +28 -0
- package/dist/node/permissions/_internal/checkServiceStatus.js.map +1 -0
- package/dist/node/permissions/_internal/getPolicyResponseCode.js +8 -0
- package/dist/node/permissions/_internal/getPolicyResponseCode.js.map +1 -1
- package/dist/node/permissions/_internal/processEntityFeatures.js +30 -0
- package/dist/node/permissions/_internal/processEntityFeatures.js.map +1 -0
- package/dist/node/permissions/checkPermission.js +10 -0
- package/dist/node/permissions/checkPermission.js.map +1 -1
- package/dist/node/projects/_internal/ProjectBusinessRules.js +38 -12
- package/dist/node/projects/_internal/ProjectBusinessRules.js.map +1 -1
- package/dist/node/projects/_internal/computeProps.js +7 -1
- package/dist/node/projects/_internal/computeProps.js.map +1 -1
- package/dist/node/projects/defaults.js +2 -0
- package/dist/node/projects/defaults.js.map +1 -1
- package/dist/node/sites/_internal/SiteBusinessRules.js +38 -9
- package/dist/node/sites/_internal/SiteBusinessRules.js.map +1 -1
- package/dist/node/sites/_internal/computeProps.js +7 -1
- package/dist/node/sites/_internal/computeProps.js.map +1 -1
- package/dist/node/sites/defaults.js +2 -0
- package/dist/node/sites/defaults.js.map +1 -1
- package/dist/node/utils/getEnvironmentFromPortalUrl.js +24 -0
- package/dist/node/utils/getEnvironmentFromPortalUrl.js.map +1 -0
- package/dist/node/utils/index.js +1 -0
- package/dist/node/utils/index.js.map +1 -1
- package/dist/types/ArcGISContext.d.ts +37 -4
- package/dist/types/ArcGISContextManager.d.ts +8 -2
- package/dist/types/capabilities/getWorkspaceCapabilities.d.ts +1 -1
- package/dist/types/content/_internal/ContentBusinessRules.d.ts +3 -0
- package/dist/types/content/_internal/internalContentUtils.d.ts +2 -1
- package/dist/types/core/HubItemEntity.d.ts +1 -0
- package/dist/types/core/behaviors/IWithPermissionBehavior.d.ts +3 -0
- package/dist/types/core/schemas/types.d.ts +1 -1
- package/dist/types/core/traits/IWithPermissions.d.ts +9 -1
- package/dist/types/core/types/IHubGroup.d.ts +16 -2
- package/dist/types/core/types/IHubItemEntity.d.ts +4 -0
- package/dist/types/core/types/ISystemStatus.d.ts +17 -0
- package/dist/types/core/types/index.d.ts +1 -0
- package/dist/types/discussions/_internal/DiscussionBusinessRules.d.ts +3 -1
- package/dist/types/groups/HubGroup.d.ts +20 -2
- package/dist/types/groups/_internal/GroupBusinessRules.d.ts +3 -1
- package/dist/types/groups/_internal/GroupSchema.d.ts +7 -0
- package/dist/types/groups/_internal/GroupUiSchemaEdit.d.ts +7 -0
- package/dist/types/groups/_internal/convertGroupToHubGroup.d.ts +9 -0
- package/dist/types/groups/_internal/convertHubGroupToGroup.d.ts +7 -0
- package/dist/types/groups/deleteGroupThumbnail.d.ts +9 -0
- package/dist/types/groups/setGroupThumbnail.d.ts +9 -0
- package/dist/types/initiatives/_internal/InitiativeBusinessRules.d.ts +6 -2
- package/dist/types/pages/_internal/PageBusinessRules.d.ts +8 -2
- package/dist/types/permissions/_internal/checkAlphaGating.d.ts +1 -1
- package/dist/types/permissions/_internal/checkAvailability.d.ts +13 -0
- package/dist/types/permissions/_internal/checkEntityFeature.d.ts +4 -0
- package/dist/types/permissions/_internal/checkEnvironment.d.ts +13 -0
- package/dist/types/permissions/_internal/checkParents.d.ts +12 -0
- package/dist/types/permissions/_internal/checkServiceStatus.d.ts +4 -0
- package/dist/types/permissions/_internal/processEntityFeatures.d.ts +9 -0
- package/dist/types/permissions/types/IPermissionPolicy.d.ts +55 -4
- package/dist/types/permissions/types/PolicyResponse.d.ts +1 -1
- package/dist/types/projects/_internal/ProjectBusinessRules.d.ts +8 -2
- package/dist/types/sites/_internal/SiteBusinessRules.d.ts +9 -2
- package/dist/types/utils/getEnvironmentFromPortalUrl.d.ts +2 -0
- package/dist/types/utils/index.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PageVersionIncludeList = exports.PagePermissionPolicies = exports.PagePermissions = exports.PageCapabilityPermissions = exports.PageDefaultCapabilities = void 0;
|
|
3
|
+
exports.PageVersionIncludeList = exports.PagePermissionPolicies = exports.PagePermissions = exports.PageDefaultFeatures = exports.PageCapabilityPermissions = exports.PageDefaultCapabilities = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Default capabilities for a Page. If not listed here, the capability will not be available
|
|
6
6
|
* This hash is combined with the capabilities hash stored in the item data. Regardless of what
|
|
7
7
|
* properties are defined in the item data, only the capabilities defined here will be available
|
|
8
8
|
* @private
|
|
9
|
+
* TODO: Remove capabilities
|
|
9
10
|
*/
|
|
10
11
|
exports.PageDefaultCapabilities = {
|
|
11
12
|
overview: true,
|
|
@@ -17,6 +18,7 @@ exports.PageDefaultCapabilities = {
|
|
|
17
18
|
* List of all the Page Capability Permissions
|
|
18
19
|
* These are considered Hub Business Rules and are not intended
|
|
19
20
|
* to be modified by consumers
|
|
21
|
+
* TODO: Remove capabilities
|
|
20
22
|
* @private
|
|
21
23
|
*/
|
|
22
24
|
exports.PageCapabilityPermissions = [
|
|
@@ -41,12 +43,19 @@ exports.PageCapabilityPermissions = [
|
|
|
41
43
|
permissions: ["hub:page:edit"],
|
|
42
44
|
},
|
|
43
45
|
];
|
|
46
|
+
/**
|
|
47
|
+
* Default features for a Project. These are the features that can be enabled / disabled by the entity owner
|
|
48
|
+
*/
|
|
49
|
+
exports.PageDefaultFeatures = {
|
|
50
|
+
// Intentally empty as this prevents overriding and adding features
|
|
51
|
+
};
|
|
44
52
|
/**
|
|
45
53
|
* Page Permission Policies
|
|
46
54
|
* These define the requirements any user must meet to perform related actions
|
|
47
55
|
* @private
|
|
48
56
|
*/
|
|
49
57
|
exports.PagePermissions = [
|
|
58
|
+
"hub:page",
|
|
50
59
|
"hub:page:create",
|
|
51
60
|
"hub:page:delete",
|
|
52
61
|
"hub:page:edit",
|
|
@@ -57,34 +66,31 @@ exports.PagePermissions = [
|
|
|
57
66
|
* @private
|
|
58
67
|
*/
|
|
59
68
|
exports.PagePermissionPolicies = [
|
|
69
|
+
{
|
|
70
|
+
permission: "hub:page",
|
|
71
|
+
services: ["portal"],
|
|
72
|
+
},
|
|
60
73
|
{
|
|
61
74
|
permission: "hub:page:create",
|
|
62
|
-
|
|
75
|
+
dependencies: ["hub:page"],
|
|
63
76
|
authenticated: true,
|
|
64
77
|
privileges: ["portal:user:createItem"],
|
|
65
|
-
licenses: ["hub-basic", "hub-premium", "enterprise-sites"],
|
|
66
78
|
},
|
|
67
79
|
{
|
|
68
80
|
permission: "hub:page:view",
|
|
69
|
-
|
|
70
|
-
authenticated: false,
|
|
71
|
-
licenses: ["hub-basic", "hub-premium", "enterprise-sites"],
|
|
81
|
+
dependencies: ["hub:page"],
|
|
72
82
|
},
|
|
73
83
|
{
|
|
74
84
|
permission: "hub:page:edit",
|
|
85
|
+
dependencies: ["hub:page"],
|
|
75
86
|
authenticated: true,
|
|
76
|
-
subsystems: ["pages", "sites"],
|
|
77
87
|
entityEdit: true,
|
|
78
|
-
// privileges: ["portal:admin:updateItems"], // maybe this too?
|
|
79
|
-
licenses: ["hub-basic", "hub-premium", "enterprise-sites"],
|
|
80
88
|
},
|
|
81
89
|
{
|
|
82
90
|
permission: "hub:page:delete",
|
|
91
|
+
dependencies: ["hub:page"],
|
|
83
92
|
authenticated: true,
|
|
84
|
-
subsystems: ["pages", "sites"],
|
|
85
93
|
entityOwner: true,
|
|
86
|
-
// privileges: ["portal:admin:deleteItems"], // maybe this too?
|
|
87
|
-
licenses: ["hub-basic", "hub-premium", "enterprise-sites"],
|
|
88
94
|
},
|
|
89
95
|
];
|
|
90
96
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageBusinessRules.js","sourceRoot":"","sources":["../../../../src/pages/_internal/PageBusinessRules.ts"],"names":[],"mappings":";;;AAGA
|
|
1
|
+
{"version":3,"file":"PageBusinessRules.js","sourceRoot":"","sources":["../../../../src/pages/_internal/PageBusinessRules.ts"],"names":[],"mappings":";;;AAGA;;;;;;GAMG;AACU,QAAA,uBAAuB,GAAuB;IACzD,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF;;;;;;GAMG;AACU,QAAA,yBAAyB,GAA4B;IAChE;QACE,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,CAAC,eAAe,CAAC;KAC/B;IACD;QACE,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,eAAe,CAAC;KAC/B;IACD;QACE,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,CAAC,eAAe,CAAC;KAC/B;IACD;QACE,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,WAAW;QACvB,WAAW,EAAE,CAAC,eAAe,CAAC;KAC/B;CACF,CAAC;AAEF;;GAEG;AACU,QAAA,mBAAmB,GAAoB;AAClD,mEAAmE;CACpE,CAAC;AAEF;;;;GAIG;AACU,QAAA,eAAe,GAAG;IAC7B,UAAU;IACV,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,eAAe;CACP,CAAC;AAEX;;;GAGG;AACU,QAAA,sBAAsB,GAAwB;IACzD;QACE,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACrB;IACD;QACE,UAAU,EAAE,iBAAiB;QAC7B,YAAY,EAAE,CAAC,UAAU,CAAC;QAC1B,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,wBAAwB,CAAC;KACvC;IACD;QACE,UAAU,EAAE,eAAe;QAC3B,YAAY,EAAE,CAAC,UAAU,CAAC;KAC3B;IACD;QACE,UAAU,EAAE,eAAe;QAC3B,YAAY,EAAE,CAAC,UAAU,CAAC;QAC1B,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;KACjB;IACD;QACE,UAAU,EAAE,iBAAiB;QAC7B,YAAY,EAAE,CAAC,UAAU,CAAC;QAC1B,aAAa,EAAE,IAAI;QACnB,WAAW,EAAE,IAAI;KAClB;CACF,CAAC;AAEF;;GAEG;AACU,QAAA,sBAAsB,GAAG;IACpC,oBAAoB;IACpB,yBAAyB;CAC1B,CAAC"}
|
|
@@ -4,6 +4,7 @@ exports.computeProps = void 0;
|
|
|
4
4
|
const resources_1 = require("../../resources");
|
|
5
5
|
const PageBusinessRules_1 = require("./PageBusinessRules");
|
|
6
6
|
const capabilities_1 = require("../../capabilities");
|
|
7
|
+
const processEntityFeatures_1 = require("../../permissions/_internal/processEntityFeatures");
|
|
7
8
|
/**
|
|
8
9
|
* Given a model and a page, set various computed properties that can't be directly mapped
|
|
9
10
|
* @private
|
|
@@ -13,7 +14,7 @@ const capabilities_1 = require("../../capabilities");
|
|
|
13
14
|
* @returns
|
|
14
15
|
*/
|
|
15
16
|
function computeProps(model, page, requestOptions) {
|
|
16
|
-
var _a;
|
|
17
|
+
var _a, _b;
|
|
17
18
|
let token;
|
|
18
19
|
if (requestOptions.authentication) {
|
|
19
20
|
const session = requestOptions.authentication;
|
|
@@ -27,7 +28,13 @@ function computeProps(model, page, requestOptions) {
|
|
|
27
28
|
page.updatedDate = new Date(model.item.modified);
|
|
28
29
|
page.updatedDateSource = "item.modified";
|
|
29
30
|
// // Handle capabilities
|
|
31
|
+
// TODO: Remove capabilities
|
|
30
32
|
page.capabilities = capabilities_1.processEntityCapabilities(((_a = model.data.settings) === null || _a === void 0 ? void 0 : _a.capabilities) || {}, PageBusinessRules_1.PageDefaultCapabilities);
|
|
33
|
+
/**
|
|
34
|
+
* Features that can be disabled by the entity owner
|
|
35
|
+
* NOTE: Pages do not have any features that can be disabled
|
|
36
|
+
*/
|
|
37
|
+
page.features = processEntityFeatures_1.processEntityFeatures(((_b = model.data.settings) === null || _b === void 0 ? void 0 : _b.features) || {}, PageBusinessRules_1.PageDefaultFeatures);
|
|
31
38
|
// cast b/c this takes a partial but returns a full page
|
|
32
39
|
return page;
|
|
33
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeProps.js","sourceRoot":"","sources":["../../../../src/pages/_internal/computeProps.ts"],"names":[],"mappings":";;;AAEA,+CAAsD;AAGtD,
|
|
1
|
+
{"version":3,"file":"computeProps.js","sourceRoot":"","sources":["../../../../src/pages/_internal/computeProps.ts"],"names":[],"mappings":";;;AAEA,+CAAsD;AAGtD,2DAG6B;AAC7B,qDAA+D;AAC/D,6FAA0F;AAE1F;;;;;;;GAOG;AACH,SAAgB,YAAY,CAC1B,KAAa,EACb,IAAuB,EACvB,cAA+B;;IAE/B,IAAI,KAAa,CAAC;IAClB,IAAI,cAAc,CAAC,cAAc,EAAE;QACjC,MAAM,OAAO,GAAgB,cAAc,CAAC,cAA6B,CAAC;QAC1E,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;KACvB;IACD,gBAAgB;IAChB,IAAI,CAAC,YAAY,GAAG,+BAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;IAE3E,eAAe;IACf,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,iBAAiB,GAAG,cAAc,CAAC;IACxC,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,iBAAiB,GAAG,eAAe,CAAC;IAEzC,yBAAyB;IACzB,4BAA4B;IAC5B,IAAI,CAAC,YAAY,GAAG,wCAAyB,CAC3C,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,YAAY,KAAI,EAAE,EACvC,2CAAuB,CACxB,CAAC;IAEF;;;OAGG;IACH,IAAI,CAAC,QAAQ,GAAG,6CAAqB,CACnC,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,QAAQ,KAAI,EAAE,EACnC,uCAAmB,CACpB,CAAC;IAEF,wDAAwD;IACxD,OAAO,IAAgB,CAAC;AAC1B,CAAC;AArCD,oCAqCC"}
|
|
@@ -9,10 +9,12 @@ const getPolicyResponseCode_1 = require("./getPolicyResponseCode");
|
|
|
9
9
|
* @param entity
|
|
10
10
|
* @returns
|
|
11
11
|
*/
|
|
12
|
-
function checkAlphaGating(policy, context,
|
|
12
|
+
function checkAlphaGating(policy, context, _entity) {
|
|
13
13
|
const checks = [];
|
|
14
14
|
// Only return a check if the policy is defined
|
|
15
15
|
if (policy.alpha) {
|
|
16
|
+
/* tslint:disable-next-line: no-console */
|
|
17
|
+
console.log("DEPRECATED: alpha policy is deprecated, please use gatedAvailability: alpha instead");
|
|
16
18
|
const result = context.isAlphaOrg
|
|
17
19
|
? "granted"
|
|
18
20
|
: "not-alpha-org";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkAlphaGating.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkAlphaGating.ts"],"names":[],"mappings":";;;AAEA,mEAAgE;AAEhE;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAC9B,MAAyB,EACzB,OAAuB,EACvB,
|
|
1
|
+
{"version":3,"file":"checkAlphaGating.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkAlphaGating.ts"],"names":[],"mappings":";;;AAEA,mEAAgE;AAEhE;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAC9B,MAAyB,EACzB,OAAuB,EACvB,OAA6B;IAE7B,MAAM,MAAM,GAAG,EAAoB,CAAC;IACpC,+CAA+C;IAC/C,IAAI,MAAM,CAAC,KAAK,EAAE;QAChB,0CAA0C;QAC1C,OAAO,CAAC,GAAG,CACT,qFAAqF,CACtF,CAAC;QAEF,MAAM,MAAM,GAAmB,OAAO,CAAC,UAAU;YAC/C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,eAAe,CAAC;QAEpB,mBAAmB;QACnB,MAAM,KAAK,GAAiB;YAC1B,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,OAAO,CAAC,UAAU;YACzB,IAAI,EAAE,6CAAqB,CAAC,MAAM,CAAC;YACnC,QAAQ,EAAE,MAAM;SACjB,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AA5BD,4CA4BC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkAvailability = void 0;
|
|
4
|
+
const getPolicyResponseCode_1 = require("./getPolicyResponseCode");
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
* Verify that the policy.availability requirement is met.
|
|
8
|
+
* If a value is specified in the policy, the current context must be one of those values.
|
|
9
|
+
* @param policy
|
|
10
|
+
* @param context
|
|
11
|
+
* @param entity
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
function checkAvailability(policy, context, _entity) {
|
|
15
|
+
let checks = [];
|
|
16
|
+
if (policy.availability && policy.availability.length) {
|
|
17
|
+
// Build array of the context's availability values
|
|
18
|
+
// based on the isAlphaOrg and isBetaOrg properties
|
|
19
|
+
const contextAvailability = [];
|
|
20
|
+
if (context.isAlphaOrg) {
|
|
21
|
+
contextAvailability.push("alpha");
|
|
22
|
+
}
|
|
23
|
+
if (context.isBetaOrg) {
|
|
24
|
+
contextAvailability.push("beta");
|
|
25
|
+
}
|
|
26
|
+
// if we have no values in the array, then we push in "ga"
|
|
27
|
+
if (!contextAvailability.length) {
|
|
28
|
+
contextAvailability.push("general");
|
|
29
|
+
}
|
|
30
|
+
// reduce over the policy.availability array, adding a check for each
|
|
31
|
+
// value that is not included in the contextAvailability array
|
|
32
|
+
checks = policy.availability.reduce((acc, value) => {
|
|
33
|
+
let result = "granted";
|
|
34
|
+
if (!contextAvailability.includes(value)) {
|
|
35
|
+
result = `not-${value}-org`;
|
|
36
|
+
}
|
|
37
|
+
const check = {
|
|
38
|
+
name: `user in ${value} org`,
|
|
39
|
+
value: contextAvailability.join(", "),
|
|
40
|
+
code: getPolicyResponseCode_1.getPolicyResponseCode(result),
|
|
41
|
+
response: result,
|
|
42
|
+
};
|
|
43
|
+
acc.push(check);
|
|
44
|
+
return acc;
|
|
45
|
+
}, []);
|
|
46
|
+
}
|
|
47
|
+
return checks;
|
|
48
|
+
}
|
|
49
|
+
exports.checkAvailability = checkAvailability;
|
|
50
|
+
//# sourceMappingURL=checkAvailability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkAvailability.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkAvailability.ts"],"names":[],"mappings":";;;AAIA,mEAAgE;AAEhE;;;;;;;;GAQG;AACH,SAAgB,iBAAiB,CAC/B,MAAyB,EACzB,OAAuB,EACvB,OAA6B;IAE7B,IAAI,MAAM,GAAG,EAAoB,CAAC;IAClC,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE;QACrD,mDAAmD;QACnD,mDAAmD;QACnD,MAAM,mBAAmB,GAAsB,EAAE,CAAC;QAClD,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACnC;QACD,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClC;QACD,0DAA0D;QAC1D,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE;YAC/B,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACrC;QAED,qEAAqE;QACrE,8DAA8D;QAC9D,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAmB,EAAE,KAAK,EAAE,EAAE;YACjE,IAAI,MAAM,GAAmB,SAAS,CAAC;YACvC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACxC,MAAM,GAAG,OAAO,KAAK,MAAwB,CAAC;aAC/C;YACD,MAAM,KAAK,GAAiB;gBAC1B,IAAI,EAAE,WAAW,KAAK,MAAM;gBAC5B,KAAK,EAAE,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;gBACrC,IAAI,EAAE,6CAAqB,CAAC,MAAM,CAAC;gBACnC,QAAQ,EAAE,MAAM;aACjB,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEhB,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;KACR;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAxCD,8CAwCC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkEntityFeature = void 0;
|
|
4
|
+
const get_with_default_1 = require("../../objects/get-with-default");
|
|
5
|
+
const getPolicyResponseCode_1 = require("./getPolicyResponseCode");
|
|
6
|
+
function checkEntityFeature(policy, _entitycontext, entity) {
|
|
7
|
+
const checks = [];
|
|
8
|
+
// Only check things if the policy can be configured by the entity
|
|
9
|
+
// This prevents arbitrary checks from being overriden by the entity
|
|
10
|
+
if (entity && policy.entityConfigurable) {
|
|
11
|
+
const result = "feature-enabled";
|
|
12
|
+
// create the check, default to enabled
|
|
13
|
+
const check = {
|
|
14
|
+
name: `entity feature enabled`,
|
|
15
|
+
value: `entity feature ${policy.permission} check`,
|
|
16
|
+
code: getPolicyResponseCode_1.getPolicyResponseCode(result),
|
|
17
|
+
response: result,
|
|
18
|
+
};
|
|
19
|
+
// Check if the feature is enabled for the entity defaulting to true
|
|
20
|
+
const isFeatureEnabled = get_with_default_1.getWithDefault(entity, `features.${policy.permission}`, true);
|
|
21
|
+
if (!isFeatureEnabled) {
|
|
22
|
+
check.response = "feature-disabled";
|
|
23
|
+
check.code = getPolicyResponseCode_1.getPolicyResponseCode("feature-disabled");
|
|
24
|
+
}
|
|
25
|
+
checks.push(check);
|
|
26
|
+
}
|
|
27
|
+
return checks;
|
|
28
|
+
}
|
|
29
|
+
exports.checkEntityFeature = checkEntityFeature;
|
|
30
|
+
//# sourceMappingURL=checkEntityFeature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkEntityFeature.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkEntityFeature.ts"],"names":[],"mappings":";;;AACA,qEAAgE;AAIhE,mEAAgE;AAEhE,SAAgB,kBAAkB,CAChC,MAAyB,EACzB,cAA8B,EAC9B,MAA4B;IAE5B,MAAM,MAAM,GAAG,EAAoB,CAAC;IACpC,kEAAkE;IAClE,oEAAoE;IACpE,IAAI,MAAM,IAAI,MAAM,CAAC,kBAAkB,EAAE;QACvC,MAAM,MAAM,GAAG,iBAAmC,CAAC;QACnD,uCAAuC;QACvC,MAAM,KAAK,GAAiB;YAC1B,IAAI,EAAE,wBAAwB;YAC9B,KAAK,EAAE,kBAAkB,MAAM,CAAC,UAAU,QAAQ;YAClD,IAAI,EAAE,6CAAqB,CAAC,MAAM,CAAC;YACnC,QAAQ,EAAE,MAAM;SACjB,CAAC;QAEF,oEAAoE;QACpE,MAAM,gBAAgB,GAAG,iCAAc,CACrC,MAAM,EACN,YAAY,MAAM,CAAC,UAAU,EAAE,EAC/B,IAAI,CACL,CAAC;QACF,IAAI,CAAC,gBAAgB,EAAE;YACrB,KAAK,CAAC,QAAQ,GAAG,kBAAkB,CAAC;YACpC,KAAK,CAAC,IAAI,GAAG,6CAAqB,CAAC,kBAAkB,CAAC,CAAC;SACxD;QACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AA/BD,gDA+BC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkEnvironment = void 0;
|
|
4
|
+
const getPolicyResponseCode_1 = require("./getPolicyResponseCode");
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
* Verify that the policy.environment requirement is met.
|
|
8
|
+
*
|
|
9
|
+
* @param policy
|
|
10
|
+
* @param context
|
|
11
|
+
* @param entity
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
function checkEnvironment(policy, context, _entity) {
|
|
15
|
+
const checks = [];
|
|
16
|
+
if (policy.environments && policy.environments.length) {
|
|
17
|
+
let result = "granted";
|
|
18
|
+
if (!policy.environments.includes(context.environment)) {
|
|
19
|
+
result = "not-in-environment";
|
|
20
|
+
}
|
|
21
|
+
const check = {
|
|
22
|
+
name: `user in ${policy.environments.join(",")} org`,
|
|
23
|
+
value: context.environment,
|
|
24
|
+
code: getPolicyResponseCode_1.getPolicyResponseCode(result),
|
|
25
|
+
response: result,
|
|
26
|
+
};
|
|
27
|
+
checks.push(check);
|
|
28
|
+
}
|
|
29
|
+
return checks;
|
|
30
|
+
}
|
|
31
|
+
exports.checkEnvironment = checkEnvironment;
|
|
32
|
+
//# sourceMappingURL=checkEnvironment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkEnvironment.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkEnvironment.ts"],"names":[],"mappings":";;;AAIA,mEAAgE;AAEhE;;;;;;;;GAQG;AACH,SAAgB,gBAAgB,CAC9B,MAAyB,EACzB,OAAuB,EACvB,OAA6B;IAE7B,MAAM,MAAM,GAAG,EAAoB,CAAC;IACpC,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE;QACrD,IAAI,MAAM,GAAmB,SAAS,CAAC;QAEvC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YACtD,MAAM,GAAG,oBAAoB,CAAC;SAC/B;QACD,MAAM,KAAK,GAAiB;YAC1B,IAAI,EAAE,WAAW,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;YACpD,KAAK,EAAE,OAAO,CAAC,WAAW;YAC1B,IAAI,EAAE,6CAAqB,CAAC,MAAM,CAAC;YACnC,QAAQ,EAAE,MAAM;SACjB,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AArBD,4CAqBC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkParents = void 0;
|
|
4
|
+
const checkPermission_1 = require("../checkPermission");
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
* Check the parent policies for the given policy
|
|
8
|
+
* @param policy
|
|
9
|
+
* @param context
|
|
10
|
+
* @param entity
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
function checkParents(policy, context, entity) {
|
|
14
|
+
var _a;
|
|
15
|
+
let checks = [];
|
|
16
|
+
if ((_a = policy.dependencies) === null || _a === void 0 ? void 0 : _a.length) {
|
|
17
|
+
// map over the parents array of permissions and check each one
|
|
18
|
+
checks = policy.dependencies.reduce((acc, parent) => {
|
|
19
|
+
const result = checkPermission_1.checkPermission(parent, context, entity);
|
|
20
|
+
acc = [...acc, ...result.checks];
|
|
21
|
+
return acc;
|
|
22
|
+
}, []);
|
|
23
|
+
}
|
|
24
|
+
return checks;
|
|
25
|
+
}
|
|
26
|
+
exports.checkParents = checkParents;
|
|
27
|
+
//# sourceMappingURL=checkParents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkParents.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkParents.ts"],"names":[],"mappings":";;;AACA,wDAAqD;AAIrD;;;;;;;GAOG;AACH,SAAgB,YAAY,CAC1B,MAAyB,EACzB,OAAuB,EACvB,MAA4B;;IAE5B,IAAI,MAAM,GAAG,EAAoB,CAAC;IAClC,UAAI,MAAM,CAAC,YAAY,0CAAE,MAAM,EAAE;QAC/B,+DAA+D;QAC/D,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YAClD,MAAM,MAAM,GAAG,iCAAe,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACxD,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACjC,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAoB,CAAC,CAAC;KAC1B;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAfD,oCAeC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkServiceStatus = void 0;
|
|
4
|
+
const getPolicyResponseCode_1 = require("./getPolicyResponseCode");
|
|
5
|
+
function checkServiceStatus(policy, context, _entity) {
|
|
6
|
+
let checks = [];
|
|
7
|
+
if (policy.services) {
|
|
8
|
+
const services = context.serviceStatus;
|
|
9
|
+
// we need each service to have a status of "online"
|
|
10
|
+
// and if not, return status info
|
|
11
|
+
checks = policy.services.map((service) => {
|
|
12
|
+
let result = "granted";
|
|
13
|
+
if (services[service] !== "online") {
|
|
14
|
+
result = `service-${services[service]}`;
|
|
15
|
+
}
|
|
16
|
+
const check = {
|
|
17
|
+
name: `service ${service} online`,
|
|
18
|
+
value: `service is ${services[service]}`,
|
|
19
|
+
code: getPolicyResponseCode_1.getPolicyResponseCode(result),
|
|
20
|
+
response: result,
|
|
21
|
+
};
|
|
22
|
+
return check;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return checks;
|
|
26
|
+
}
|
|
27
|
+
exports.checkServiceStatus = checkServiceStatus;
|
|
28
|
+
//# sourceMappingURL=checkServiceStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkServiceStatus.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkServiceStatus.ts"],"names":[],"mappings":";;;AAIA,mEAAgE;AAEhE,SAAgB,kBAAkB,CAChC,MAAyB,EACzB,OAAuB,EACvB,OAA6B;IAE7B,IAAI,MAAM,GAAG,EAAoB,CAAC;IAClC,IAAI,MAAM,CAAC,QAAQ,EAAE;QACnB,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC;QACvC,oDAAoD;QACpD,iCAAiC;QACjC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACvC,IAAI,MAAM,GAAmB,SAAS,CAAC;YACvC,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE;gBAClC,MAAM,GAAG,WAAW,QAAQ,CAAC,OAAO,CAAC,EAAoB,CAAC;aAC3D;YAED,MAAM,KAAK,GAAiB;gBAC1B,IAAI,EAAE,WAAW,OAAO,SAAS;gBACjC,KAAK,EAAE,cAAc,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACxC,IAAI,EAAE,6CAAqB,CAAC,MAAM,CAAC;gBACnC,QAAQ,EAAE,MAAM;aACjB,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AA3BD,gDA2BC"}
|
|
@@ -20,8 +20,12 @@ const policyResponseCodes = [
|
|
|
20
20
|
{ response: "edit-access", code: "PC113" },
|
|
21
21
|
{ response: "invalid-permission", code: "PC114" },
|
|
22
22
|
{ response: "privilege-required", code: "PC115" },
|
|
23
|
+
// ----------- TODO Remove with Capabilities
|
|
23
24
|
{ response: "system-offline", code: "PC116" },
|
|
24
25
|
{ response: "system-maintenance", code: "PC117" },
|
|
26
|
+
// -------------------------------------------
|
|
27
|
+
{ response: "service-offline", code: "PC116" },
|
|
28
|
+
{ response: "service-maintenance", code: "PC117" },
|
|
25
29
|
{ response: "entity-required", code: "PC118" },
|
|
26
30
|
{ response: "not-authenticated", code: "PC119" },
|
|
27
31
|
{ response: "not-alpha-org", code: "PC120" },
|
|
@@ -37,6 +41,10 @@ const policyResponseCodes = [
|
|
|
37
41
|
{ response: "assertion-failed", code: "PC130" },
|
|
38
42
|
{ response: "assertion-requires-numeric-values", code: "PC131" },
|
|
39
43
|
{ response: "property-match", code: "PC132" },
|
|
44
|
+
{ response: "not-beta-org", code: "PC133" },
|
|
45
|
+
{ response: "not-in-environment", code: "PC134" },
|
|
46
|
+
{ response: "feature-disabled", code: "PC135" },
|
|
47
|
+
{ response: "feature-enabled", code: "PC136" },
|
|
40
48
|
];
|
|
41
49
|
/**
|
|
42
50
|
* Get a code that can be used for i18n or other purposes, based on the PolicyResponse
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPolicyResponseCode.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/getPolicyResponseCode.ts"],"names":[],"mappings":";;;AAOA,wEAAwE;AACxE,+DAA+D;AAC/D,MAAM,mBAAmB,GAAoB;IAC3C,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;IACtC,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;IACzC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC7C,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3C,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC/C,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC9C,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;IACtC,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;IACxC,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3C,EAAE,QAAQ,EAAE,wBAAwB,EAAE,IAAI,EAAE,OAAO,EAAE;IACrD,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;IAC5C,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;IAC1C,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC7C,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;IAC1C,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,EAAE;IACjD,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,EAAE;IACjD,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC7C,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,EAAE;IACjD,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC9C,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,OAAO,EAAE;IAChD,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;IAC5C,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC/C,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,EAAE;IACjD,EAAE,QAAQ,EAAE,8BAA8B,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3D,EAAE,QAAQ,EAAE,8BAA8B,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3D,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,OAAO,EAAE;IAChD,EAAE,QAAQ,EAAE,uBAAuB,EAAE,IAAI,EAAE,OAAO,EAAE;IACpD,EAAE,QAAQ,EAAE,wBAAwB,EAAE,IAAI,EAAE,OAAO,EAAE;IACrD,EAAE,QAAQ,EAAE,sBAAsB,EAAE,IAAI,EAAE,OAAO,EAAE;IACnD,EAAE,QAAQ,EAAE,8BAA8B,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3D,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC/C,EAAE,QAAQ,EAAE,mCAAmC,EAAE,IAAI,EAAE,OAAO,EAAE;IAChE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"getPolicyResponseCode.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/getPolicyResponseCode.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.processEntityFeatures = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Take an entity's features and merge them with the default features ensuring
|
|
6
|
+
* that only the featires defined in the business rules are allowed through.
|
|
7
|
+
* @param entityFeatures
|
|
8
|
+
* @param defaultFeatures
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
function processEntityFeatures(entityFeatures, defaultFeatures) {
|
|
12
|
+
// Extend the defaults with the entity values
|
|
13
|
+
const features = Object.assign(Object.assign({}, defaultFeatures), entityFeatures);
|
|
14
|
+
// Remove any features that are not in the default features hash.
|
|
15
|
+
// this prevents enabling features that are not defined in hub business rules
|
|
16
|
+
const defaultKeys = Object.keys(defaultFeatures);
|
|
17
|
+
const keysToRemove = Object.keys(features).reduce((acc, key) => {
|
|
18
|
+
if (!defaultKeys.includes(key)) {
|
|
19
|
+
acc.push(key);
|
|
20
|
+
}
|
|
21
|
+
return acc;
|
|
22
|
+
}, []);
|
|
23
|
+
// remove any keys that are not in the default hash
|
|
24
|
+
keysToRemove.forEach((key) => {
|
|
25
|
+
delete features[key];
|
|
26
|
+
});
|
|
27
|
+
return features;
|
|
28
|
+
}
|
|
29
|
+
exports.processEntityFeatures = processEntityFeatures;
|
|
30
|
+
//# sourceMappingURL=processEntityFeatures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processEntityFeatures.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/processEntityFeatures.ts"],"names":[],"mappings":";;;AAGA;;;;;;GAMG;AACH,SAAgB,qBAAqB,CACnC,cAA+B,EAC/B,eAAgC;IAEhC,6CAA6C;IAC7C,MAAM,QAAQ,mCAAQ,eAAe,GAAK,cAAc,CAAE,CAAC;IAE3D,iEAAiE;IACjE,6EAA6E;IAC7E,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC7D,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC9B,GAAG,CAAC,IAAI,CAAC,GAAiB,CAAC,CAAC;SAC7B;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,mDAAmD;IACnD,YAAY,CAAC,OAAO,CAAC,CAAC,GAAe,EAAE,EAAE;QACvC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC;AArBD,sDAqBC"}
|
|
@@ -13,6 +13,11 @@ const checkEdit_1 = require("./_internal/checkEdit");
|
|
|
13
13
|
const checkPrivileges_1 = require("./_internal/checkPrivileges");
|
|
14
14
|
const checkEntityPolicy_1 = require("./_internal/checkEntityPolicy");
|
|
15
15
|
const checkAssertions_1 = require("./_internal/checkAssertions");
|
|
16
|
+
const checkParents_1 = require("./_internal/checkParents");
|
|
17
|
+
const checkEnvironment_1 = require("./_internal/checkEnvironment");
|
|
18
|
+
const checkAvailability_1 = require("./_internal/checkAvailability");
|
|
19
|
+
const checkEntityFeature_1 = require("./_internal/checkEntityFeature");
|
|
20
|
+
const checkServiceStatus_1 = require("./_internal/checkServiceStatus");
|
|
16
21
|
/**
|
|
17
22
|
* Check a permission against the system policies, and possibly an entity policy
|
|
18
23
|
* @param permission
|
|
@@ -43,7 +48,12 @@ function checkPermission(permission, context, entity) {
|
|
|
43
48
|
checks: [],
|
|
44
49
|
};
|
|
45
50
|
const checks = [
|
|
51
|
+
checkParents_1.checkParents,
|
|
52
|
+
checkServiceStatus_1.checkServiceStatus,
|
|
53
|
+
checkEntityFeature_1.checkEntityFeature,
|
|
46
54
|
checkAuthentication_1.checkAuthentication,
|
|
55
|
+
checkEnvironment_1.checkEnvironment,
|
|
56
|
+
checkAvailability_1.checkAvailability,
|
|
47
57
|
checkLicense_1.checkLicense,
|
|
48
58
|
checkPrivileges_1.checkPrivileges,
|
|
49
59
|
checkOwner_1.checkOwner,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkPermission.js","sourceRoot":"","sources":["../../../src/permissions/checkPermission.ts"],"names":[],"mappings":";;;AACA,wCAA4C;AAC5C,2DAAwD;AACxD,mEAA8D;AAC9D,mCAMiB;AACjB,6EAA0E;AAC1E,yEAAsE;AACtE,mEAAgE;AAChE,uDAAoD;AACpD,qDAAkD;AAClD,iEAA8D;AAC9D,qEAAkE;AAClE,iEAA8D;
|
|
1
|
+
{"version":3,"file":"checkPermission.js","sourceRoot":"","sources":["../../../src/permissions/checkPermission.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ProjectPermissionPolicies = exports.ProjectPermissions = exports.ProjectCapabilityPermissions = exports.ProjectDefaultCapabilities = void 0;
|
|
3
|
+
exports.ProjectPermissionPolicies = exports.ProjectPermissions = exports.ProjectDefaultFeatures = exports.ProjectCapabilityPermissions = exports.ProjectDefaultCapabilities = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Default capabilities for a Project. If not listed here, the capability will not be available
|
|
6
6
|
* This hash is combined with the capabilities hash stored in the item data. Regardless of what
|
|
7
7
|
* properties are defined in the item data, only the capabilities defined here will be available
|
|
8
8
|
* @private
|
|
9
|
+
* TODO: Remove capabilities
|
|
9
10
|
*/
|
|
10
11
|
exports.ProjectDefaultCapabilities = {
|
|
11
12
|
overview: true,
|
|
@@ -19,6 +20,7 @@ exports.ProjectDefaultCapabilities = {
|
|
|
19
20
|
* List of all the Project Capability Permissions
|
|
20
21
|
* These are considered Hub Business Rules and are not intended
|
|
21
22
|
* to be modified by consumers
|
|
23
|
+
* TODO: Remove capabilities
|
|
22
24
|
* @private
|
|
23
25
|
*/
|
|
24
26
|
exports.ProjectCapabilityPermissions = [
|
|
@@ -53,56 +55,80 @@ exports.ProjectCapabilityPermissions = [
|
|
|
53
55
|
permissions: ["hub:project:edit"],
|
|
54
56
|
},
|
|
55
57
|
];
|
|
58
|
+
/**
|
|
59
|
+
* Default features for a Project. These are the features that can be enabled / disabled by the entity owner
|
|
60
|
+
*/
|
|
61
|
+
exports.ProjectDefaultFeatures = {
|
|
62
|
+
"hub:project:events": false,
|
|
63
|
+
"hub:project:content": true,
|
|
64
|
+
"hub:project:discussions": false,
|
|
65
|
+
};
|
|
56
66
|
/**
|
|
57
67
|
* Project Permission Policies
|
|
58
68
|
* These define the requirements any user must meet to perform related actions
|
|
59
69
|
* @private
|
|
60
70
|
*/
|
|
61
71
|
exports.ProjectPermissions = [
|
|
72
|
+
"hub:project",
|
|
62
73
|
"hub:project:create",
|
|
63
74
|
"hub:project:delete",
|
|
64
75
|
"hub:project:edit",
|
|
65
76
|
"hub:project:view",
|
|
66
77
|
"hub:project:owner",
|
|
78
|
+
"hub:project:events",
|
|
79
|
+
"hub:project:content",
|
|
80
|
+
"hub:project:discussions",
|
|
67
81
|
];
|
|
68
82
|
/**
|
|
69
83
|
* Project permission policies
|
|
70
84
|
* @private
|
|
71
85
|
*/
|
|
72
86
|
exports.ProjectPermissionPolicies = [
|
|
87
|
+
{
|
|
88
|
+
permission: "hub:project",
|
|
89
|
+
services: ["portal"],
|
|
90
|
+
licenses: ["hub-premium"],
|
|
91
|
+
},
|
|
73
92
|
{
|
|
74
93
|
permission: "hub:project:create",
|
|
75
|
-
subsystems: ["projects"],
|
|
76
94
|
authenticated: true,
|
|
95
|
+
dependencies: ["hub:project"],
|
|
77
96
|
privileges: ["portal:user:createItem"],
|
|
78
|
-
licenses: ["hub-premium"],
|
|
79
97
|
},
|
|
80
98
|
{
|
|
99
|
+
// Anyone can view a project
|
|
81
100
|
permission: "hub:project:view",
|
|
82
|
-
subsystems: ["
|
|
83
|
-
authenticated: false,
|
|
84
|
-
licenses: ["hub-basic", "hub-premium"],
|
|
101
|
+
subsystems: ["platform"],
|
|
85
102
|
},
|
|
86
103
|
{
|
|
87
104
|
permission: "hub:project:edit",
|
|
105
|
+
dependencies: ["hub:project"],
|
|
88
106
|
authenticated: true,
|
|
89
|
-
subsystems: ["projects"],
|
|
90
107
|
entityEdit: true,
|
|
91
|
-
licenses: ["hub-basic", "hub-premium"],
|
|
92
108
|
},
|
|
93
109
|
{
|
|
94
110
|
permission: "hub:project:delete",
|
|
111
|
+
dependencies: ["hub:project"],
|
|
95
112
|
authenticated: true,
|
|
96
|
-
subsystems: ["projects"],
|
|
97
113
|
entityOwner: true,
|
|
98
|
-
licenses: ["hub-premium"],
|
|
99
114
|
},
|
|
100
115
|
{
|
|
101
116
|
permission: "hub:project:owner",
|
|
117
|
+
dependencies: ["hub:project"],
|
|
102
118
|
authenticated: true,
|
|
103
|
-
subsystems: ["projects"],
|
|
104
119
|
entityOwner: true,
|
|
105
|
-
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
permission: "hub:project:events",
|
|
123
|
+
dependencies: ["hub:project:view"],
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
permission: "hub:project:content",
|
|
127
|
+
dependencies: ["hub:project:edit"],
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
permission: "hub:project:discussions",
|
|
131
|
+
dependencies: ["hub:project:view"],
|
|
106
132
|
},
|
|
107
133
|
];
|
|
108
134
|
//# sourceMappingURL=ProjectBusinessRules.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectBusinessRules.js","sourceRoot":"","sources":["../../../../src/projects/_internal/ProjectBusinessRules.ts"],"names":[],"mappings":";;;AAGA
|
|
1
|
+
{"version":3,"file":"ProjectBusinessRules.js","sourceRoot":"","sources":["../../../../src/projects/_internal/ProjectBusinessRules.ts"],"names":[],"mappings":";;;AAGA;;;;;;GAMG;AACU,QAAA,0BAA0B,GAAuB;IAC5D,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF;;;;;;GAMG;AACU,QAAA,4BAA4B,GAA4B;IACnE;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,CAAC,kBAAkB,CAAC;KAClC;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,kBAAkB,CAAC;KAClC;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,CAAC,mBAAmB,CAAC;KACnC;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,kBAAkB,CAAC;KAClC;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;KAC7D;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,WAAW;QACvB,WAAW,EAAE,CAAC,kBAAkB,CAAC;KAClC;CACF,CAAC;AAEF;;GAEG;AACU,QAAA,sBAAsB,GAAoB;IACrD,oBAAoB,EAAE,KAAK;IAC3B,qBAAqB,EAAE,IAAI;IAC3B,yBAAyB,EAAE,KAAK;CACjC,CAAC;AAEF;;;;GAIG;AACU,QAAA,kBAAkB,GAAG;IAChC,aAAa;IACb,oBAAoB;IACpB,oBAAoB;IACpB,kBAAkB;IAClB,kBAAkB;IAClB,mBAAmB;IACnB,oBAAoB;IACpB,qBAAqB;IACrB,yBAAyB;CACjB,CAAC;AAEX;;;GAGG;AACU,QAAA,yBAAyB,GAAwB;IAC5D;QACE,UAAU,EAAE,aAAa;QACzB,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD;QACE,UAAU,EAAE,oBAAoB;QAChC,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,CAAC,aAAa,CAAC;QAC7B,UAAU,EAAE,CAAC,wBAAwB,CAAC;KACvC;IACD;QACE,4BAA4B;QAC5B,UAAU,EAAE,kBAAkB;QAC9B,UAAU,EAAE,CAAC,UAAU,CAAC;KACzB;IACD;QACE,UAAU,EAAE,kBAAkB;QAC9B,YAAY,EAAE,CAAC,aAAa,CAAC;QAC7B,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;KACjB;IACD;QACE,UAAU,EAAE,oBAAoB;QAChC,YAAY,EAAE,CAAC,aAAa,CAAC;QAC7B,aAAa,EAAE,IAAI;QACnB,WAAW,EAAE,IAAI;KAClB;IACD;QACE,UAAU,EAAE,mBAAmB;QAC/B,YAAY,EAAE,CAAC,aAAa,CAAC;QAC7B,aAAa,EAAE,IAAI;QACnB,WAAW,EAAE,IAAI;KAClB;IACD;QACE,UAAU,EAAE,oBAAoB;QAChC,YAAY,EAAE,CAAC,kBAAkB,CAAC;KACnC;IACD;QACE,UAAU,EAAE,qBAAqB;QACjC,YAAY,EAAE,CAAC,kBAAkB,CAAC;KACnC;IACD;QACE,UAAU,EAAE,yBAAyB;QACrC,YAAY,EAAE,CAAC,kBAAkB,CAAC;KACnC;CACF,CAAC"}
|
|
@@ -5,6 +5,7 @@ const resources_1 = require("../../resources");
|
|
|
5
5
|
const ProjectBusinessRules_1 = require("./ProjectBusinessRules");
|
|
6
6
|
const capabilities_1 = require("../../capabilities");
|
|
7
7
|
const discussions_1 = require("../../discussions");
|
|
8
|
+
const processEntityFeatures_1 = require("../../permissions/_internal/processEntityFeatures");
|
|
8
9
|
/**
|
|
9
10
|
* Given a model and a project, set various computed properties that can't be directly mapped
|
|
10
11
|
* @private
|
|
@@ -14,7 +15,7 @@ const discussions_1 = require("../../discussions");
|
|
|
14
15
|
* @returns
|
|
15
16
|
*/
|
|
16
17
|
function computeProps(model, project, requestOptions) {
|
|
17
|
-
var _a;
|
|
18
|
+
var _a, _b;
|
|
18
19
|
let token;
|
|
19
20
|
if (requestOptions.authentication) {
|
|
20
21
|
const session = requestOptions.authentication;
|
|
@@ -29,7 +30,12 @@ function computeProps(model, project, requestOptions) {
|
|
|
29
30
|
project.updatedDateSource = "item.modified";
|
|
30
31
|
project.isDiscussable = discussions_1.isDiscussable(project);
|
|
31
32
|
// Handle capabilities
|
|
33
|
+
// TODO: Remove capabilities
|
|
32
34
|
project.capabilities = capabilities_1.processEntityCapabilities(((_a = model.data.settings) === null || _a === void 0 ? void 0 : _a.capabilities) || {}, ProjectBusinessRules_1.ProjectDefaultCapabilities);
|
|
35
|
+
/**
|
|
36
|
+
* Features that can be disabled by the entity owner
|
|
37
|
+
*/
|
|
38
|
+
project.features = processEntityFeatures_1.processEntityFeatures(((_b = model.data.settings) === null || _b === void 0 ? void 0 : _b.features) || {}, ProjectBusinessRules_1.ProjectDefaultFeatures);
|
|
33
39
|
// cast b/c this takes a partial but returns a full project
|
|
34
40
|
return project;
|
|
35
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeProps.js","sourceRoot":"","sources":["../../../../src/projects/_internal/computeProps.ts"],"names":[],"mappings":";;;AAEA,+CAAsD;AAGtD,
|
|
1
|
+
{"version":3,"file":"computeProps.js","sourceRoot":"","sources":["../../../../src/projects/_internal/computeProps.ts"],"names":[],"mappings":";;;AAEA,+CAAsD;AAGtD,iEAGgC;AAChC,qDAA+D;AAC/D,mDAAkD;AAClD,6FAA0F;AAE1F;;;;;;;GAOG;AACH,SAAgB,YAAY,CAC1B,KAAa,EACb,OAA6B,EAC7B,cAA+B;;IAE/B,IAAI,KAAa,CAAC;IAClB,IAAI,cAAc,CAAC,cAAc,EAAE;QACjC,MAAM,OAAO,GAAgB,cAAc,CAAC,cAA6B,CAAC;QAC1E,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;KACvB;IACD,gBAAgB;IAChB,OAAO,CAAC,YAAY,GAAG,+BAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;IAE9E,eAAe;IACf,OAAO,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,CAAC,iBAAiB,GAAG,cAAc,CAAC;IAC3C,OAAO,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpD,OAAO,CAAC,iBAAiB,GAAG,eAAe,CAAC;IAC5C,OAAO,CAAC,aAAa,GAAG,2BAAa,CAAC,OAAO,CAAC,CAAC;IAE/C,sBAAsB;IACtB,4BAA4B;IAC5B,OAAO,CAAC,YAAY,GAAG,wCAAyB,CAC9C,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,YAAY,KAAI,EAAE,EACvC,iDAA0B,CAC3B,CAAC;IAEF;;OAEG;IACH,OAAO,CAAC,QAAQ,GAAG,6CAAqB,CACtC,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,QAAQ,KAAI,EAAE,EACnC,6CAAsB,CACvB,CAAC;IAEF,2DAA2D;IAC3D,OAAO,OAAsB,CAAC;AAChC,CAAC;AArCD,oCAqCC"}
|