@esri/hub-common 13.37.3 → 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.
Files changed (173) hide show
  1. package/dist/esm/ArcGISContext.js +31 -0
  2. package/dist/esm/ArcGISContext.js.map +1 -1
  3. package/dist/esm/ArcGISContextManager.js +44 -0
  4. package/dist/esm/ArcGISContextManager.js.map +1 -1
  5. package/dist/esm/capabilities/_internal/checkCapabilityAccess.js +2 -0
  6. package/dist/esm/capabilities/_internal/checkCapabilityAccess.js.map +1 -1
  7. package/dist/esm/capabilities/checkCapability.js +2 -0
  8. package/dist/esm/capabilities/checkCapability.js.map +1 -1
  9. package/dist/esm/capabilities/getWorkspaceCapabilities.js +3 -1
  10. package/dist/esm/capabilities/getWorkspaceCapabilities.js.map +1 -1
  11. package/dist/esm/capabilities/processEntityCapabilities.js +2 -0
  12. package/dist/esm/capabilities/processEntityCapabilities.js.map +1 -1
  13. package/dist/esm/content/_internal/ContentBusinessRules.js +6 -6
  14. package/dist/esm/content/_internal/ContentBusinessRules.js.map +1 -1
  15. package/dist/esm/content/_internal/getPropertyMap.js +1 -0
  16. package/dist/esm/content/_internal/getPropertyMap.js.map +1 -1
  17. package/dist/esm/core/HubItemEntity.js +3 -0
  18. package/dist/esm/core/HubItemEntity.js.map +1 -1
  19. package/dist/esm/core/_internal/getBasePropertyMap.js +1 -0
  20. package/dist/esm/core/_internal/getBasePropertyMap.js.map +1 -1
  21. package/dist/esm/core/types/ISystemStatus.js +20 -0
  22. package/dist/esm/core/types/ISystemStatus.js.map +1 -1
  23. package/dist/esm/core/types/index.js +1 -0
  24. package/dist/esm/core/types/index.js.map +1 -1
  25. package/dist/esm/discussions/_internal/DiscussionBusinessRules.js +11 -4
  26. package/dist/esm/discussions/_internal/DiscussionBusinessRules.js.map +1 -1
  27. package/dist/esm/groups/_internal/GroupBusinessRules.js +12 -6
  28. package/dist/esm/groups/_internal/GroupBusinessRules.js.map +1 -1
  29. package/dist/esm/initiatives/_internal/InitiativeBusinessRules.js +36 -8
  30. package/dist/esm/initiatives/_internal/InitiativeBusinessRules.js.map +1 -1
  31. package/dist/esm/initiatives/_internal/computeProps.js +8 -2
  32. package/dist/esm/initiatives/_internal/computeProps.js.map +1 -1
  33. package/dist/esm/initiatives/defaults.js +2 -0
  34. package/dist/esm/initiatives/defaults.js.map +1 -1
  35. package/dist/esm/pages/_internal/PageBusinessRules.js +17 -11
  36. package/dist/esm/pages/_internal/PageBusinessRules.js.map +1 -1
  37. package/dist/esm/pages/_internal/computeProps.js +9 -2
  38. package/dist/esm/pages/_internal/computeProps.js.map +1 -1
  39. package/dist/esm/permissions/_internal/checkAlphaGating.js +3 -1
  40. package/dist/esm/permissions/_internal/checkAlphaGating.js.map +1 -1
  41. package/dist/esm/permissions/_internal/checkAvailability.js +46 -0
  42. package/dist/esm/permissions/_internal/checkAvailability.js.map +1 -0
  43. package/dist/esm/permissions/_internal/checkEntityFeature.js +26 -0
  44. package/dist/esm/permissions/_internal/checkEntityFeature.js.map +1 -0
  45. package/dist/esm/permissions/_internal/checkEnvironment.js +28 -0
  46. package/dist/esm/permissions/_internal/checkEnvironment.js.map +1 -0
  47. package/dist/esm/permissions/_internal/checkParents.js +23 -0
  48. package/dist/esm/permissions/_internal/checkParents.js.map +1 -0
  49. package/dist/esm/permissions/_internal/checkServiceStatus.js +24 -0
  50. package/dist/esm/permissions/_internal/checkServiceStatus.js.map +1 -0
  51. package/dist/esm/permissions/_internal/getPolicyResponseCode.js +8 -0
  52. package/dist/esm/permissions/_internal/getPolicyResponseCode.js.map +1 -1
  53. package/dist/esm/permissions/_internal/processEntityFeatures.js +26 -0
  54. package/dist/esm/permissions/_internal/processEntityFeatures.js.map +1 -0
  55. package/dist/esm/permissions/checkPermission.js +10 -0
  56. package/dist/esm/permissions/checkPermission.js.map +1 -1
  57. package/dist/esm/projects/_internal/ProjectBusinessRules.js +37 -11
  58. package/dist/esm/projects/_internal/ProjectBusinessRules.js.map +1 -1
  59. package/dist/esm/projects/_internal/computeProps.js +8 -2
  60. package/dist/esm/projects/_internal/computeProps.js.map +1 -1
  61. package/dist/esm/projects/defaults.js +2 -0
  62. package/dist/esm/projects/defaults.js.map +1 -1
  63. package/dist/esm/sites/_internal/SiteBusinessRules.js +37 -8
  64. package/dist/esm/sites/_internal/SiteBusinessRules.js.map +1 -1
  65. package/dist/esm/sites/_internal/computeProps.js +8 -2
  66. package/dist/esm/sites/_internal/computeProps.js.map +1 -1
  67. package/dist/esm/sites/defaults.js +2 -0
  68. package/dist/esm/sites/defaults.js.map +1 -1
  69. package/dist/esm/utils/getEnvironmentFromPortalUrl.js +20 -0
  70. package/dist/esm/utils/getEnvironmentFromPortalUrl.js.map +1 -0
  71. package/dist/esm/utils/index.js +1 -0
  72. package/dist/esm/utils/index.js.map +1 -1
  73. package/dist/node/ArcGISContext.js +31 -0
  74. package/dist/node/ArcGISContext.js.map +1 -1
  75. package/dist/node/ArcGISContextManager.js +44 -0
  76. package/dist/node/ArcGISContextManager.js.map +1 -1
  77. package/dist/node/capabilities/_internal/checkCapabilityAccess.js +2 -0
  78. package/dist/node/capabilities/_internal/checkCapabilityAccess.js.map +1 -1
  79. package/dist/node/capabilities/checkCapability.js +2 -0
  80. package/dist/node/capabilities/checkCapability.js.map +1 -1
  81. package/dist/node/capabilities/getWorkspaceCapabilities.js +3 -1
  82. package/dist/node/capabilities/getWorkspaceCapabilities.js.map +1 -1
  83. package/dist/node/capabilities/processEntityCapabilities.js +2 -0
  84. package/dist/node/capabilities/processEntityCapabilities.js.map +1 -1
  85. package/dist/node/content/_internal/ContentBusinessRules.js +6 -6
  86. package/dist/node/content/_internal/ContentBusinessRules.js.map +1 -1
  87. package/dist/node/content/_internal/getPropertyMap.js +1 -0
  88. package/dist/node/content/_internal/getPropertyMap.js.map +1 -1
  89. package/dist/node/core/HubItemEntity.js +3 -0
  90. package/dist/node/core/HubItemEntity.js.map +1 -1
  91. package/dist/node/core/_internal/getBasePropertyMap.js +1 -0
  92. package/dist/node/core/_internal/getBasePropertyMap.js.map +1 -1
  93. package/dist/node/core/types/ISystemStatus.js +22 -1
  94. package/dist/node/core/types/ISystemStatus.js.map +1 -1
  95. package/dist/node/core/types/index.js +1 -0
  96. package/dist/node/core/types/index.js.map +1 -1
  97. package/dist/node/discussions/_internal/DiscussionBusinessRules.js +11 -4
  98. package/dist/node/discussions/_internal/DiscussionBusinessRules.js.map +1 -1
  99. package/dist/node/groups/_internal/GroupBusinessRules.js +12 -6
  100. package/dist/node/groups/_internal/GroupBusinessRules.js.map +1 -1
  101. package/dist/node/initiatives/_internal/InitiativeBusinessRules.js +37 -9
  102. package/dist/node/initiatives/_internal/InitiativeBusinessRules.js.map +1 -1
  103. package/dist/node/initiatives/_internal/computeProps.js +7 -1
  104. package/dist/node/initiatives/_internal/computeProps.js.map +1 -1
  105. package/dist/node/initiatives/defaults.js +2 -0
  106. package/dist/node/initiatives/defaults.js.map +1 -1
  107. package/dist/node/pages/_internal/PageBusinessRules.js +18 -12
  108. package/dist/node/pages/_internal/PageBusinessRules.js.map +1 -1
  109. package/dist/node/pages/_internal/computeProps.js +8 -1
  110. package/dist/node/pages/_internal/computeProps.js.map +1 -1
  111. package/dist/node/permissions/_internal/checkAlphaGating.js +3 -1
  112. package/dist/node/permissions/_internal/checkAlphaGating.js.map +1 -1
  113. package/dist/node/permissions/_internal/checkAvailability.js +50 -0
  114. package/dist/node/permissions/_internal/checkAvailability.js.map +1 -0
  115. package/dist/node/permissions/_internal/checkEntityFeature.js +30 -0
  116. package/dist/node/permissions/_internal/checkEntityFeature.js.map +1 -0
  117. package/dist/node/permissions/_internal/checkEnvironment.js +32 -0
  118. package/dist/node/permissions/_internal/checkEnvironment.js.map +1 -0
  119. package/dist/node/permissions/_internal/checkParents.js +27 -0
  120. package/dist/node/permissions/_internal/checkParents.js.map +1 -0
  121. package/dist/node/permissions/_internal/checkServiceStatus.js +28 -0
  122. package/dist/node/permissions/_internal/checkServiceStatus.js.map +1 -0
  123. package/dist/node/permissions/_internal/getPolicyResponseCode.js +8 -0
  124. package/dist/node/permissions/_internal/getPolicyResponseCode.js.map +1 -1
  125. package/dist/node/permissions/_internal/processEntityFeatures.js +30 -0
  126. package/dist/node/permissions/_internal/processEntityFeatures.js.map +1 -0
  127. package/dist/node/permissions/checkPermission.js +10 -0
  128. package/dist/node/permissions/checkPermission.js.map +1 -1
  129. package/dist/node/projects/_internal/ProjectBusinessRules.js +38 -12
  130. package/dist/node/projects/_internal/ProjectBusinessRules.js.map +1 -1
  131. package/dist/node/projects/_internal/computeProps.js +7 -1
  132. package/dist/node/projects/_internal/computeProps.js.map +1 -1
  133. package/dist/node/projects/defaults.js +2 -0
  134. package/dist/node/projects/defaults.js.map +1 -1
  135. package/dist/node/sites/_internal/SiteBusinessRules.js +38 -9
  136. package/dist/node/sites/_internal/SiteBusinessRules.js.map +1 -1
  137. package/dist/node/sites/_internal/computeProps.js +7 -1
  138. package/dist/node/sites/_internal/computeProps.js.map +1 -1
  139. package/dist/node/sites/defaults.js +2 -0
  140. package/dist/node/sites/defaults.js.map +1 -1
  141. package/dist/node/utils/getEnvironmentFromPortalUrl.js +24 -0
  142. package/dist/node/utils/getEnvironmentFromPortalUrl.js.map +1 -0
  143. package/dist/node/utils/index.js +1 -0
  144. package/dist/node/utils/index.js.map +1 -1
  145. package/dist/types/ArcGISContext.d.ts +37 -4
  146. package/dist/types/ArcGISContextManager.d.ts +8 -2
  147. package/dist/types/capabilities/getWorkspaceCapabilities.d.ts +1 -1
  148. package/dist/types/content/_internal/ContentBusinessRules.d.ts +3 -0
  149. package/dist/types/content/_internal/internalContentUtils.d.ts +2 -1
  150. package/dist/types/core/HubItemEntity.d.ts +1 -0
  151. package/dist/types/core/behaviors/IWithPermissionBehavior.d.ts +3 -0
  152. package/dist/types/core/traits/IWithPermissions.d.ts +9 -1
  153. package/dist/types/core/types/IHubItemEntity.d.ts +4 -0
  154. package/dist/types/core/types/ISystemStatus.d.ts +17 -0
  155. package/dist/types/core/types/index.d.ts +1 -0
  156. package/dist/types/discussions/_internal/DiscussionBusinessRules.d.ts +3 -1
  157. package/dist/types/groups/_internal/GroupBusinessRules.d.ts +3 -1
  158. package/dist/types/initiatives/_internal/InitiativeBusinessRules.d.ts +6 -2
  159. package/dist/types/pages/_internal/PageBusinessRules.d.ts +8 -2
  160. package/dist/types/permissions/_internal/checkAlphaGating.d.ts +1 -1
  161. package/dist/types/permissions/_internal/checkAvailability.d.ts +13 -0
  162. package/dist/types/permissions/_internal/checkEntityFeature.d.ts +4 -0
  163. package/dist/types/permissions/_internal/checkEnvironment.d.ts +13 -0
  164. package/dist/types/permissions/_internal/checkParents.d.ts +12 -0
  165. package/dist/types/permissions/_internal/checkServiceStatus.d.ts +4 -0
  166. package/dist/types/permissions/_internal/processEntityFeatures.d.ts +9 -0
  167. package/dist/types/permissions/types/IPermissionPolicy.d.ts +55 -4
  168. package/dist/types/permissions/types/PolicyResponse.d.ts +1 -1
  169. package/dist/types/projects/_internal/ProjectBusinessRules.d.ts +8 -2
  170. package/dist/types/sites/_internal/SiteBusinessRules.d.ts +9 -2
  171. package/dist/types/utils/getEnvironmentFromPortalUrl.d.ts +2 -0
  172. package/dist/types/utils/index.d.ts +1 -0
  173. 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
- subsystems: ["projects"],
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
- subsystems: ["projects"],
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
- licenses: ["hub-premium"],
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;AACU,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;AACU,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;;;;GAIG;AACU,QAAA,qBAAqB,GAAG;IACnC,uBAAuB;IACvB,uBAAuB;IACvB,qBAAqB;IACrB,qBAAqB;CACb,CAAC;AAEX;;;GAGG;AACU,QAAA,4BAA4B,GAAwB;IAC/D;QACE,UAAU,EAAE,uBAAuB;QACnC,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD;QACE,UAAU,EAAE,qBAAqB;QACjC,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD;QACE,UAAU,EAAE,qBAAqB;QACjC,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD;QACE,UAAU,EAAE,uBAAuB;QACnC,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;CACF,CAAC"}
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,uEAA0E;AAE1E,mDAAkD;AAElD;;;;;;;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,UAAU,CAAC,YAAY,GAAG,wCAAyB,CACjD,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,YAAY,KAAI,EAAE,EACvC,uDAA6B,CAC9B,CAAC;IAEF,0DAA0D;IAC1D,OAAO,UAA4B,CAAC;AACtC,CAAC;AAhCD,oCAgCC"}
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":";;;AAGa,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;CACjB,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
+ {"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
- subsystems: ["pages", "sites"],
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
- subsystems: ["pages", "sites"],
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;;;;;GAKG;AACU,QAAA,uBAAuB,GAAuB;IACzD,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF;;;;;GAKG;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;;;;GAIG;AACU,QAAA,eAAe,GAAG;IAC7B,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,eAAe;CACP,CAAC;AAEX;;;GAGG;AACU,QAAA,sBAAsB,GAAwB;IACzD;QACE,UAAU,EAAE,iBAAiB;QAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAC9B,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,kBAAkB,CAAC;KAC3D;IACD;QACE,UAAU,EAAE,eAAe;QAC3B,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAC9B,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,kBAAkB,CAAC;KAC3D;IACD;QACE,UAAU,EAAE,eAAe;QAC3B,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAC9B,UAAU,EAAE,IAAI;QAChB,+DAA+D;QAC/D,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,kBAAkB,CAAC;KAC3D;IACD;QACE,UAAU,EAAE,iBAAiB;QAC7B,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAC9B,WAAW,EAAE,IAAI;QACjB,+DAA+D;QAC/D,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,kBAAkB,CAAC;KAC3D;CACF,CAAC;AAEF;;GAEG;AACU,QAAA,sBAAsB,GAAG;IACpC,oBAAoB;IACpB,yBAAyB;CAC1B,CAAC"}
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,2DAA8D;AAC9D,qDAA+D;AAE/D;;;;;;;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,IAAI,CAAC,YAAY,GAAG,wCAAyB,CAC3C,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,YAAY,KAAI,EAAE,EACvC,2CAAuB,CACxB,CAAC;IAEF,wDAAwD;IACxD,OAAO,IAAgB,CAAC;AAC1B,CAAC;AA3BD,oCA2BC"}
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, entity) {
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,MAA4B;IAE5B,MAAM,MAAM,GAAG,EAAoB,CAAC;IACpC,+CAA+C;IAC/C,IAAI,MAAM,CAAC,KAAK,EAAE;QAChB,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;AAvBD,4CAuBC"}
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":"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"}
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,