@esri/hub-common 13.37.3 → 13.38.1
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/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/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/_internal/GroupBusinessRules.js +12 -6
- package/dist/esm/groups/_internal/GroupBusinessRules.js.map +1 -1
- 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/users/view.js +2 -25
- package/dist/esm/users/view.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/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/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/_internal/GroupBusinessRules.js +12 -6
- package/dist/node/groups/_internal/GroupBusinessRules.js.map +1 -1
- 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/users/view.js +2 -25
- package/dist/node/users/view.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/traits/IWithPermissions.d.ts +9 -1
- 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/_internal/GroupBusinessRules.d.ts +3 -1
- 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,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.InitiativePermissionPolicies = exports.InitiativePermissions = exports.InitiativeCapabilityPermissions = exports.InitiativeDefaultCapabilities = void 0;
|
|
3
|
+
exports.InitiativePermissionPolicies = exports.InitiativePermissions = exports.InitiativeDefaultFeatures = exports.InitiativeCapabilityPermissions = exports.InitiativeDefaultCapabilities = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Default capabilities for a Initiative. 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
9
|
*/
|
|
10
|
+
// TODO: Remove capabilities
|
|
10
11
|
exports.InitiativeDefaultCapabilities = {
|
|
11
12
|
overview: true,
|
|
12
13
|
details: true,
|
|
@@ -20,6 +21,7 @@ exports.InitiativeDefaultCapabilities = {
|
|
|
20
21
|
* to be modified by consumers
|
|
21
22
|
* @private
|
|
22
23
|
*/
|
|
24
|
+
// TODO: Remove capabilities
|
|
23
25
|
exports.InitiativeCapabilityPermissions = [
|
|
24
26
|
{
|
|
25
27
|
entity: "initiative",
|
|
@@ -47,48 +49,74 @@ exports.InitiativeCapabilityPermissions = [
|
|
|
47
49
|
permissions: ["hub:initiative:edit"],
|
|
48
50
|
},
|
|
49
51
|
];
|
|
52
|
+
/**
|
|
53
|
+
* Default features for a Initiative. These are the features that can be enabled / disabled by the entity owner
|
|
54
|
+
*/
|
|
55
|
+
exports.InitiativeDefaultFeatures = {
|
|
56
|
+
"hub:initiative:events": false,
|
|
57
|
+
"hub:initiative:content": true,
|
|
58
|
+
"hub:initiative:discussions": false,
|
|
59
|
+
};
|
|
50
60
|
/**
|
|
51
61
|
* Initiative Permission Policies
|
|
52
62
|
* These define the requirements any user must meet to perform related actions
|
|
53
63
|
* @private
|
|
54
64
|
*/
|
|
55
65
|
exports.InitiativePermissions = [
|
|
66
|
+
"hub:initiative",
|
|
56
67
|
"hub:initiative:create",
|
|
57
68
|
"hub:initiative:delete",
|
|
58
69
|
"hub:initiative:edit",
|
|
59
70
|
"hub:initiative:view",
|
|
71
|
+
"hub:initiative:events",
|
|
72
|
+
"hub:initiative:content",
|
|
73
|
+
"hub:initiative:discussions",
|
|
60
74
|
];
|
|
61
75
|
/**
|
|
62
76
|
* Initiative permission policies
|
|
63
77
|
* @private
|
|
64
78
|
*/
|
|
65
79
|
exports.InitiativePermissionPolicies = [
|
|
80
|
+
{
|
|
81
|
+
permission: "hub:initiative",
|
|
82
|
+
services: ["portal"],
|
|
83
|
+
licenses: ["hub-premium"],
|
|
84
|
+
},
|
|
66
85
|
{
|
|
67
86
|
permission: "hub:initiative:create",
|
|
68
|
-
|
|
87
|
+
dependencies: ["hub:initiative"],
|
|
69
88
|
authenticated: true,
|
|
70
89
|
privileges: ["portal:user:createItem"],
|
|
71
|
-
licenses: ["hub-premium"],
|
|
72
90
|
},
|
|
73
91
|
{
|
|
74
92
|
permission: "hub:initiative:view",
|
|
75
|
-
|
|
93
|
+
services: ["portal"],
|
|
76
94
|
authenticated: false,
|
|
77
|
-
licenses: ["hub-premium"],
|
|
95
|
+
licenses: ["hub-premium", "hub-basic"],
|
|
78
96
|
},
|
|
79
97
|
{
|
|
80
98
|
permission: "hub:initiative:edit",
|
|
99
|
+
dependencies: ["hub:initiative"],
|
|
81
100
|
authenticated: true,
|
|
82
|
-
subsystems: ["projects"],
|
|
83
101
|
entityEdit: true,
|
|
84
|
-
licenses: ["hub-premium"],
|
|
85
102
|
},
|
|
86
103
|
{
|
|
87
104
|
permission: "hub:initiative:delete",
|
|
105
|
+
dependencies: ["hub:initiative"],
|
|
88
106
|
authenticated: true,
|
|
89
|
-
subsystems: ["projects"],
|
|
90
107
|
entityOwner: true,
|
|
91
|
-
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
permission: "hub:initiative:events",
|
|
111
|
+
dependencies: ["hub:initiative:view"],
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
permission: "hub:initiative:content",
|
|
115
|
+
dependencies: ["hub:initiative:edit"],
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
permission: "hub:initiative:discussions",
|
|
119
|
+
dependencies: ["hub:initiative:view"],
|
|
92
120
|
},
|
|
93
121
|
];
|
|
94
122
|
//# sourceMappingURL=InitiativeBusinessRules.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InitiativeBusinessRules.js","sourceRoot":"","sources":["../../../../src/initiatives/_internal/InitiativeBusinessRules.ts"],"names":[],"mappings":";;;AAGA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"InitiativeBusinessRules.js","sourceRoot":"","sources":["../../../../src/initiatives/_internal/InitiativeBusinessRules.ts"],"names":[],"mappings":";;;AAGA;;;;;GAKG;AACH,4BAA4B;AACf,QAAA,6BAA6B,GAAuB;IAC/D,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF;;;;;GAKG;AACH,4BAA4B;AACf,QAAA,+BAA+B,GAA4B;IACtE;QACE,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,CAAC,qBAAqB,CAAC;KACrC;IACD;QACE,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,WAAW;QACvB,WAAW,EAAE,CAAC,qBAAqB,CAAC;KACrC;IACD;QACE,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,qBAAqB,CAAC;KACrC;IACD;QACE,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,CAAC,qBAAqB,CAAC;KACrC;IACD;QACE,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,qBAAqB,CAAC;KACrC;CACF,CAAC;AAEF;;GAEG;AACU,QAAA,yBAAyB,GAAoB;IACxD,uBAAuB,EAAE,KAAK;IAC9B,wBAAwB,EAAE,IAAI;IAC9B,4BAA4B,EAAE,KAAK;CACpC,CAAC;AAEF;;;;GAIG;AACU,QAAA,qBAAqB,GAAG;IACnC,gBAAgB;IAChB,uBAAuB;IACvB,uBAAuB;IACvB,qBAAqB;IACrB,qBAAqB;IACrB,uBAAuB;IACvB,wBAAwB;IACxB,4BAA4B;CACpB,CAAC;AAEX;;;GAGG;AACU,QAAA,4BAA4B,GAAwB;IAC/D;QACE,UAAU,EAAE,gBAAgB;QAC5B,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD;QACE,UAAU,EAAE,uBAAuB;QACnC,YAAY,EAAE,CAAC,gBAAgB,CAAC;QAChC,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,wBAAwB,CAAC;KACvC;IACD;QACE,UAAU,EAAE,qBAAqB;QACjC,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC;KACvC;IACD;QACE,UAAU,EAAE,qBAAqB;QACjC,YAAY,EAAE,CAAC,gBAAgB,CAAC;QAChC,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;KACjB;IACD;QACE,UAAU,EAAE,uBAAuB;QACnC,YAAY,EAAE,CAAC,gBAAgB,CAAC;QAChC,aAAa,EAAE,IAAI;QAEnB,WAAW,EAAE,IAAI;KAClB;IACD;QACE,UAAU,EAAE,uBAAuB;QACnC,YAAY,EAAE,CAAC,qBAAqB,CAAC;KACtC;IACD;QACE,UAAU,EAAE,wBAAwB;QACpC,YAAY,EAAE,CAAC,qBAAqB,CAAC;KACtC;IACD;QACE,UAAU,EAAE,4BAA4B;QACxC,YAAY,EAAE,CAAC,qBAAqB,CAAC;KACtC;CACF,CAAC"}
|
|
@@ -5,6 +5,7 @@ const resources_1 = require("../../resources");
|
|
|
5
5
|
const capabilities_1 = require("../../capabilities");
|
|
6
6
|
const InitiativeBusinessRules_1 = require("./InitiativeBusinessRules");
|
|
7
7
|
const discussions_1 = require("../../discussions");
|
|
8
|
+
const processEntityFeatures_1 = require("../../permissions/_internal/processEntityFeatures");
|
|
8
9
|
/**
|
|
9
10
|
* Given a model and an Initiative, 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, initiative, 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, initiative, requestOptions) {
|
|
|
29
30
|
initiative.updatedDateSource = "item.modified";
|
|
30
31
|
initiative.isDiscussable = discussions_1.isDiscussable(initiative);
|
|
31
32
|
// Handle capabilities
|
|
33
|
+
// TODO: Remove capabilities
|
|
32
34
|
initiative.capabilities = capabilities_1.processEntityCapabilities(((_a = model.data.settings) === null || _a === void 0 ? void 0 : _a.capabilities) || {}, InitiativeBusinessRules_1.InitiativeDefaultCapabilities);
|
|
35
|
+
/**
|
|
36
|
+
* Features that can be disabled by the entity owner
|
|
37
|
+
*/
|
|
38
|
+
initiative.features = processEntityFeatures_1.processEntityFeatures(((_b = model.data.settings) === null || _b === void 0 ? void 0 : _b.features) || {}, InitiativeBusinessRules_1.InitiativeDefaultFeatures);
|
|
33
39
|
// cast b/c this takes a partial but returns a full object
|
|
34
40
|
return initiative;
|
|
35
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeProps.js","sourceRoot":"","sources":["../../../../src/initiatives/_internal/computeProps.ts"],"names":[],"mappings":";;;AAEA,+CAAsD;AACtD,qDAA+D;AAE/D,
|
|
1
|
+
{"version":3,"file":"computeProps.js","sourceRoot":"","sources":["../../../../src/initiatives/_internal/computeProps.ts"],"names":[],"mappings":";;;AAEA,+CAAsD;AACtD,qDAA+D;AAE/D,uEAGmC;AAEnC,mDAAkD;AAClD,6FAA0F;AAE1F;;;;;;;GAOG;AACH,SAAgB,YAAY,CAC1B,KAAa,EACb,UAAmC,EACnC,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,UAAU,CAAC,YAAY,GAAG,+BAAmB,CAC3C,KAAK,CAAC,IAAI,EACV,cAAc,EACd,KAAK,CACN,CAAC;IAEF,eAAe;IACf,UAAU,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtD,UAAU,CAAC,iBAAiB,GAAG,cAAc,CAAC;IAC9C,UAAU,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvD,UAAU,CAAC,iBAAiB,GAAG,eAAe,CAAC;IAC/C,UAAU,CAAC,aAAa,GAAG,2BAAa,CAAC,UAAU,CAAC,CAAC;IAErD,sBAAsB;IACtB,4BAA4B;IAC5B,UAAU,CAAC,YAAY,GAAG,wCAAyB,CACjD,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,YAAY,KAAI,EAAE,EACvC,uDAA6B,CAC9B,CAAC;IAEF;;OAEG;IACH,UAAU,CAAC,QAAQ,GAAG,6CAAqB,CACzC,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,QAAQ,KAAI,EAAE,EACnC,mDAAyB,CAC1B,CAAC;IAEF,0DAA0D;IAC1D,OAAO,UAA4B,CAAC;AACtC,CAAC;AAzCD,oCAyCC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DEFAULT_INITIATIVE_MODEL = exports.DEFAULT_INITIATIVE = exports.HUB_INITIATIVE_ITEM_TYPE = void 0;
|
|
4
|
+
const InitiativeBusinessRules_1 = require("./_internal/InitiativeBusinessRules");
|
|
4
5
|
exports.HUB_INITIATIVE_ITEM_TYPE = "Hub Initiative";
|
|
5
6
|
/**
|
|
6
7
|
* Default values of a IHubInitiative
|
|
@@ -12,6 +13,7 @@ exports.DEFAULT_INITIATIVE = {
|
|
|
12
13
|
catalog: { schemaVersion: 0 },
|
|
13
14
|
permissions: [],
|
|
14
15
|
schemaVersion: 2,
|
|
16
|
+
features: InitiativeBusinessRules_1.InitiativeDefaultFeatures,
|
|
15
17
|
};
|
|
16
18
|
/**
|
|
17
19
|
* Default values for a new HubInitiative Model
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/initiatives/defaults.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/initiatives/defaults.ts"],"names":[],"mappings":";;;AAEA,iFAAgF;AAEnE,QAAA,wBAAwB,GAAG,gBAAgB,CAAC;AAEzD;;GAEG;AACU,QAAA,kBAAkB,GAA4B;IACzD,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,EAAE;IACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;IAChC,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IAC7B,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,CAAC;IAChB,QAAQ,EAAE,mDAAyB;CACpC,CAAC;AAEF;;GAEG;AACU,QAAA,wBAAwB,GAAW;IAC9C,IAAI,EAAE;QACJ,IAAI,EAAE,gCAAwB;QAC9B,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,yBAAyB;QACtC,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;QAChC,UAAU,EAAE;YACV,IAAI,EAAE,EAAE;YACR,aAAa,EAAE,CAAC;SACjB;KACF;IACD,IAAI,EAAE,EAAE;CACY,CAAC"}
|
|
@@ -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":";;;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,4CAA4C;IAC5C,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC7C,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,EAAE;IACjD,8CAA8C;IAC9C,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC9C,EAAE,QAAQ,EAAE,qBAAqB,EAAE,IAAI,EAAE,OAAO,EAAE;IAClD,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;IAC7C,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3C,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,EAAE;IACjD,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC/C,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE;CAC/C,CAAC;AAEF;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,QAAwB;IAC5D,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IACvE,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,KAAI,OAAO,CAAC;AAChC,CAAC;AAHD,sDAGC"}
|
|
@@ -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,
|