@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.
Files changed (177) 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/users/view.js +2 -25
  70. package/dist/esm/users/view.js.map +1 -1
  71. package/dist/esm/utils/getEnvironmentFromPortalUrl.js +20 -0
  72. package/dist/esm/utils/getEnvironmentFromPortalUrl.js.map +1 -0
  73. package/dist/esm/utils/index.js +1 -0
  74. package/dist/esm/utils/index.js.map +1 -1
  75. package/dist/node/ArcGISContext.js +31 -0
  76. package/dist/node/ArcGISContext.js.map +1 -1
  77. package/dist/node/ArcGISContextManager.js +44 -0
  78. package/dist/node/ArcGISContextManager.js.map +1 -1
  79. package/dist/node/capabilities/_internal/checkCapabilityAccess.js +2 -0
  80. package/dist/node/capabilities/_internal/checkCapabilityAccess.js.map +1 -1
  81. package/dist/node/capabilities/checkCapability.js +2 -0
  82. package/dist/node/capabilities/checkCapability.js.map +1 -1
  83. package/dist/node/capabilities/getWorkspaceCapabilities.js +3 -1
  84. package/dist/node/capabilities/getWorkspaceCapabilities.js.map +1 -1
  85. package/dist/node/capabilities/processEntityCapabilities.js +2 -0
  86. package/dist/node/capabilities/processEntityCapabilities.js.map +1 -1
  87. package/dist/node/content/_internal/ContentBusinessRules.js +6 -6
  88. package/dist/node/content/_internal/ContentBusinessRules.js.map +1 -1
  89. package/dist/node/content/_internal/getPropertyMap.js +1 -0
  90. package/dist/node/content/_internal/getPropertyMap.js.map +1 -1
  91. package/dist/node/core/HubItemEntity.js +3 -0
  92. package/dist/node/core/HubItemEntity.js.map +1 -1
  93. package/dist/node/core/_internal/getBasePropertyMap.js +1 -0
  94. package/dist/node/core/_internal/getBasePropertyMap.js.map +1 -1
  95. package/dist/node/core/types/ISystemStatus.js +22 -1
  96. package/dist/node/core/types/ISystemStatus.js.map +1 -1
  97. package/dist/node/core/types/index.js +1 -0
  98. package/dist/node/core/types/index.js.map +1 -1
  99. package/dist/node/discussions/_internal/DiscussionBusinessRules.js +11 -4
  100. package/dist/node/discussions/_internal/DiscussionBusinessRules.js.map +1 -1
  101. package/dist/node/groups/_internal/GroupBusinessRules.js +12 -6
  102. package/dist/node/groups/_internal/GroupBusinessRules.js.map +1 -1
  103. package/dist/node/initiatives/_internal/InitiativeBusinessRules.js +37 -9
  104. package/dist/node/initiatives/_internal/InitiativeBusinessRules.js.map +1 -1
  105. package/dist/node/initiatives/_internal/computeProps.js +7 -1
  106. package/dist/node/initiatives/_internal/computeProps.js.map +1 -1
  107. package/dist/node/initiatives/defaults.js +2 -0
  108. package/dist/node/initiatives/defaults.js.map +1 -1
  109. package/dist/node/pages/_internal/PageBusinessRules.js +18 -12
  110. package/dist/node/pages/_internal/PageBusinessRules.js.map +1 -1
  111. package/dist/node/pages/_internal/computeProps.js +8 -1
  112. package/dist/node/pages/_internal/computeProps.js.map +1 -1
  113. package/dist/node/permissions/_internal/checkAlphaGating.js +3 -1
  114. package/dist/node/permissions/_internal/checkAlphaGating.js.map +1 -1
  115. package/dist/node/permissions/_internal/checkAvailability.js +50 -0
  116. package/dist/node/permissions/_internal/checkAvailability.js.map +1 -0
  117. package/dist/node/permissions/_internal/checkEntityFeature.js +30 -0
  118. package/dist/node/permissions/_internal/checkEntityFeature.js.map +1 -0
  119. package/dist/node/permissions/_internal/checkEnvironment.js +32 -0
  120. package/dist/node/permissions/_internal/checkEnvironment.js.map +1 -0
  121. package/dist/node/permissions/_internal/checkParents.js +27 -0
  122. package/dist/node/permissions/_internal/checkParents.js.map +1 -0
  123. package/dist/node/permissions/_internal/checkServiceStatus.js +28 -0
  124. package/dist/node/permissions/_internal/checkServiceStatus.js.map +1 -0
  125. package/dist/node/permissions/_internal/getPolicyResponseCode.js +8 -0
  126. package/dist/node/permissions/_internal/getPolicyResponseCode.js.map +1 -1
  127. package/dist/node/permissions/_internal/processEntityFeatures.js +30 -0
  128. package/dist/node/permissions/_internal/processEntityFeatures.js.map +1 -0
  129. package/dist/node/permissions/checkPermission.js +10 -0
  130. package/dist/node/permissions/checkPermission.js.map +1 -1
  131. package/dist/node/projects/_internal/ProjectBusinessRules.js +38 -12
  132. package/dist/node/projects/_internal/ProjectBusinessRules.js.map +1 -1
  133. package/dist/node/projects/_internal/computeProps.js +7 -1
  134. package/dist/node/projects/_internal/computeProps.js.map +1 -1
  135. package/dist/node/projects/defaults.js +2 -0
  136. package/dist/node/projects/defaults.js.map +1 -1
  137. package/dist/node/sites/_internal/SiteBusinessRules.js +38 -9
  138. package/dist/node/sites/_internal/SiteBusinessRules.js.map +1 -1
  139. package/dist/node/sites/_internal/computeProps.js +7 -1
  140. package/dist/node/sites/_internal/computeProps.js.map +1 -1
  141. package/dist/node/sites/defaults.js +2 -0
  142. package/dist/node/sites/defaults.js.map +1 -1
  143. package/dist/node/users/view.js +2 -25
  144. package/dist/node/users/view.js.map +1 -1
  145. package/dist/node/utils/getEnvironmentFromPortalUrl.js +24 -0
  146. package/dist/node/utils/getEnvironmentFromPortalUrl.js.map +1 -0
  147. package/dist/node/utils/index.js +1 -0
  148. package/dist/node/utils/index.js.map +1 -1
  149. package/dist/types/ArcGISContext.d.ts +37 -4
  150. package/dist/types/ArcGISContextManager.d.ts +8 -2
  151. package/dist/types/capabilities/getWorkspaceCapabilities.d.ts +1 -1
  152. package/dist/types/content/_internal/ContentBusinessRules.d.ts +3 -0
  153. package/dist/types/content/_internal/internalContentUtils.d.ts +2 -1
  154. package/dist/types/core/HubItemEntity.d.ts +1 -0
  155. package/dist/types/core/behaviors/IWithPermissionBehavior.d.ts +3 -0
  156. package/dist/types/core/traits/IWithPermissions.d.ts +9 -1
  157. package/dist/types/core/types/IHubItemEntity.d.ts +4 -0
  158. package/dist/types/core/types/ISystemStatus.d.ts +17 -0
  159. package/dist/types/core/types/index.d.ts +1 -0
  160. package/dist/types/discussions/_internal/DiscussionBusinessRules.d.ts +3 -1
  161. package/dist/types/groups/_internal/GroupBusinessRules.d.ts +3 -1
  162. package/dist/types/initiatives/_internal/InitiativeBusinessRules.d.ts +6 -2
  163. package/dist/types/pages/_internal/PageBusinessRules.d.ts +8 -2
  164. package/dist/types/permissions/_internal/checkAlphaGating.d.ts +1 -1
  165. package/dist/types/permissions/_internal/checkAvailability.d.ts +13 -0
  166. package/dist/types/permissions/_internal/checkEntityFeature.d.ts +4 -0
  167. package/dist/types/permissions/_internal/checkEnvironment.d.ts +13 -0
  168. package/dist/types/permissions/_internal/checkParents.d.ts +12 -0
  169. package/dist/types/permissions/_internal/checkServiceStatus.d.ts +4 -0
  170. package/dist/types/permissions/_internal/processEntityFeatures.d.ts +9 -0
  171. package/dist/types/permissions/types/IPermissionPolicy.d.ts +55 -4
  172. package/dist/types/permissions/types/PolicyResponse.d.ts +1 -1
  173. package/dist/types/projects/_internal/ProjectBusinessRules.d.ts +8 -2
  174. package/dist/types/sites/_internal/SiteBusinessRules.d.ts +9 -2
  175. package/dist/types/utils/getEnvironmentFromPortalUrl.d.ts +2 -0
  176. package/dist/types/utils/index.d.ts +1 -0
  177. package/package.json +1 -1
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Default capabilities for a Group.
3
3
  * If not listed here, the capability will not be available
4
+ * TODO: Remove capabilities
4
5
  * @private
5
6
  */
6
7
  export const GroupDefaultCapabilities = {
@@ -13,6 +14,7 @@ export const GroupDefaultCapabilities = {
13
14
  * List of all the Group Capability Permissions
14
15
  * These are considered Hub Business Rules and are not intended
15
16
  * to be modified by consumers
17
+ * TODO: Remove capabilities
16
18
  * @private
17
19
  */
18
20
  export const GroupCapabilityPermissions = [
@@ -43,6 +45,7 @@ export const GroupCapabilityPermissions = [
43
45
  * @private
44
46
  */
45
47
  export const GroupPermissions = [
48
+ "hub:group",
46
49
  "hub:group:create",
47
50
  "hub:group:delete",
48
51
  "hub:group:edit",
@@ -54,33 +57,36 @@ export const GroupPermissions = [
54
57
  * @private
55
58
  */
56
59
  export const GroupPermissionPolicies = [
60
+ {
61
+ permission: "hub:group",
62
+ services: ["portal"],
63
+ },
57
64
  {
58
65
  permission: "hub:group:create",
59
- subsystems: ["groups"],
66
+ dependencies: ["hub:group"],
60
67
  authenticated: true,
61
68
  privileges: ["portal:user:createGroup"],
62
69
  },
63
70
  {
64
71
  permission: "hub:group:view",
65
- subsystems: ["groups"],
66
- authenticated: false,
72
+ dependencies: ["hub:group"],
67
73
  },
68
74
  {
69
75
  permission: "hub:group:edit",
76
+ dependencies: ["hub:group"],
70
77
  authenticated: true,
71
- subsystems: ["groups"],
72
78
  entityEdit: true,
73
79
  },
74
80
  {
75
81
  permission: "hub:group:delete",
82
+ dependencies: ["hub:group"],
76
83
  authenticated: true,
77
- subsystems: ["groups"],
78
84
  entityOwner: true,
79
85
  },
80
86
  {
81
87
  permission: "hub:group:owner",
88
+ dependencies: ["hub:group"],
82
89
  authenticated: true,
83
- subsystems: ["groups"],
84
90
  entityOwner: true,
85
91
  },
86
92
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"GroupBusinessRules.js","sourceRoot":"","sources":["../../../../src/groups/_internal/GroupBusinessRules.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAuB;IAC1D,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;CACd,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAA4B;IACjE;QACE,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,gBAAgB,CAAC;KAChC;IACD;QACE,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,CAAC,iBAAiB,CAAC;KACjC;IACD;QACE,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,gBAAgB,CAAC;KAChC;IACD;QACE,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,gBAAgB,CAAC;KAChC;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;CACT,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAwB;IAC1D;QACE,UAAU,EAAE,kBAAkB;QAC9B,UAAU,EAAE,CAAC,QAAQ,CAAC;QACtB,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,yBAAyB,CAAC;KACxC;IACD;QACE,UAAU,EAAE,gBAAgB;QAC5B,UAAU,EAAE,CAAC,QAAQ,CAAC;QACtB,aAAa,EAAE,KAAK;KACrB;IACD;QACE,UAAU,EAAE,gBAAgB;QAC5B,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,QAAQ,CAAC;QACtB,UAAU,EAAE,IAAI;KACjB;IACD;QACE,UAAU,EAAE,kBAAkB;QAC9B,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,QAAQ,CAAC;QACtB,WAAW,EAAE,IAAI;KAClB;IACD;QACE,UAAU,EAAE,iBAAiB;QAC7B,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,QAAQ,CAAC;QACtB,WAAW,EAAE,IAAI;KAClB;CACF,CAAC"}
1
+ {"version":3,"file":"GroupBusinessRules.js","sourceRoot":"","sources":["../../../../src/groups/_internal/GroupBusinessRules.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAuB;IAC1D,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;CACd,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAA4B;IACjE;QACE,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,gBAAgB,CAAC;KAChC;IACD;QACE,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,CAAC,iBAAiB,CAAC;KACjC;IACD;QACE,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,gBAAgB,CAAC;KAChC;IACD;QACE,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,gBAAgB,CAAC;KAChC;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,WAAW;IACX,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;CACT,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAwB;IAC1D;QACE,UAAU,EAAE,WAAW;QACvB,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACrB;IACD;QACE,UAAU,EAAE,kBAAkB;QAC9B,YAAY,EAAE,CAAC,WAAW,CAAC;QAC3B,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,yBAAyB,CAAC;KACxC;IACD;QACE,UAAU,EAAE,gBAAgB;QAC5B,YAAY,EAAE,CAAC,WAAW,CAAC;KAC5B;IACD;QACE,UAAU,EAAE,gBAAgB;QAC5B,YAAY,EAAE,CAAC,WAAW,CAAC;QAC3B,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;KACjB;IACD;QACE,UAAU,EAAE,kBAAkB;QAC9B,YAAY,EAAE,CAAC,WAAW,CAAC;QAC3B,aAAa,EAAE,IAAI;QACnB,WAAW,EAAE,IAAI;KAClB;IACD;QACE,UAAU,EAAE,iBAAiB;QAC7B,YAAY,EAAE,CAAC,WAAW,CAAC;QAC3B,aAAa,EAAE,IAAI;QACnB,WAAW,EAAE,IAAI;KAClB;CACF,CAAC"}
@@ -4,6 +4,7 @@
4
4
  * properties are defined in the item data, only the capabilities defined here will be available
5
5
  * @private
6
6
  */
7
+ // TODO: Remove capabilities
7
8
  export const InitiativeDefaultCapabilities = {
8
9
  overview: true,
9
10
  details: true,
@@ -17,6 +18,7 @@ export const InitiativeDefaultCapabilities = {
17
18
  * to be modified by consumers
18
19
  * @private
19
20
  */
21
+ // TODO: Remove capabilities
20
22
  export const InitiativeCapabilityPermissions = [
21
23
  {
22
24
  entity: "initiative",
@@ -44,48 +46,74 @@ export const InitiativeCapabilityPermissions = [
44
46
  permissions: ["hub:initiative:edit"],
45
47
  },
46
48
  ];
49
+ /**
50
+ * Default features for a Initiative. These are the features that can be enabled / disabled by the entity owner
51
+ */
52
+ export const InitiativeDefaultFeatures = {
53
+ "hub:initiative:events": false,
54
+ "hub:initiative:content": true,
55
+ "hub:initiative:discussions": false,
56
+ };
47
57
  /**
48
58
  * Initiative Permission Policies
49
59
  * These define the requirements any user must meet to perform related actions
50
60
  * @private
51
61
  */
52
62
  export const InitiativePermissions = [
63
+ "hub:initiative",
53
64
  "hub:initiative:create",
54
65
  "hub:initiative:delete",
55
66
  "hub:initiative:edit",
56
67
  "hub:initiative:view",
68
+ "hub:initiative:events",
69
+ "hub:initiative:content",
70
+ "hub:initiative:discussions",
57
71
  ];
58
72
  /**
59
73
  * Initiative permission policies
60
74
  * @private
61
75
  */
62
76
  export const InitiativePermissionPolicies = [
77
+ {
78
+ permission: "hub:initiative",
79
+ services: ["portal"],
80
+ licenses: ["hub-premium"],
81
+ },
63
82
  {
64
83
  permission: "hub:initiative:create",
65
- subsystems: ["projects"],
84
+ dependencies: ["hub:initiative"],
66
85
  authenticated: true,
67
86
  privileges: ["portal:user:createItem"],
68
- licenses: ["hub-premium"],
69
87
  },
70
88
  {
71
89
  permission: "hub:initiative:view",
72
- subsystems: ["projects"],
90
+ services: ["portal"],
73
91
  authenticated: false,
74
- licenses: ["hub-premium"],
92
+ licenses: ["hub-premium", "hub-basic"],
75
93
  },
76
94
  {
77
95
  permission: "hub:initiative:edit",
96
+ dependencies: ["hub:initiative"],
78
97
  authenticated: true,
79
- subsystems: ["projects"],
80
98
  entityEdit: true,
81
- licenses: ["hub-premium"],
82
99
  },
83
100
  {
84
101
  permission: "hub:initiative:delete",
102
+ dependencies: ["hub:initiative"],
85
103
  authenticated: true,
86
- subsystems: ["projects"],
87
104
  entityOwner: true,
88
- licenses: ["hub-premium"],
105
+ },
106
+ {
107
+ permission: "hub:initiative:events",
108
+ dependencies: ["hub:initiative:view"],
109
+ },
110
+ {
111
+ permission: "hub:initiative:content",
112
+ dependencies: ["hub:initiative:edit"],
113
+ },
114
+ {
115
+ permission: "hub:initiative:discussions",
116
+ dependencies: ["hub:initiative:view"],
89
117
  },
90
118
  ];
91
119
  //# sourceMappingURL=InitiativeBusinessRules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InitiativeBusinessRules.js","sourceRoot":"","sources":["../../../../src/initiatives/_internal/InitiativeBusinessRules.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,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,MAAM,CAAC,MAAM,+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;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,uBAAuB;IACvB,uBAAuB;IACvB,qBAAqB;IACrB,qBAAqB;CACb,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,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;AAC5B,MAAM,CAAC,MAAM,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;AAC5B,MAAM,CAAC,MAAM,+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;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAoB;IACxD,uBAAuB,EAAE,KAAK;IAC9B,wBAAwB,EAAE,IAAI;IAC9B,4BAA4B,EAAE,KAAK;CACpC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,gBAAgB;IAChB,uBAAuB;IACvB,uBAAuB;IACvB,qBAAqB;IACrB,qBAAqB;IACrB,uBAAuB;IACvB,wBAAwB;IACxB,4BAA4B;CACpB,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,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"}
@@ -1,7 +1,8 @@
1
1
  import { getItemThumbnailUrl } from "../../resources";
2
2
  import { processEntityCapabilities } from "../../capabilities";
3
- import { InitiativeDefaultCapabilities } from "./InitiativeBusinessRules";
3
+ import { InitiativeDefaultCapabilities, InitiativeDefaultFeatures, } from "./InitiativeBusinessRules";
4
4
  import { isDiscussable } from "../../discussions";
5
+ import { processEntityFeatures } from "../../permissions/_internal/processEntityFeatures";
5
6
  /**
6
7
  * Given a model and an Initiative, set various computed properties that can't be directly mapped
7
8
  * @private
@@ -11,7 +12,7 @@ import { isDiscussable } from "../../discussions";
11
12
  * @returns
12
13
  */
13
14
  export function computeProps(model, initiative, requestOptions) {
14
- var _a;
15
+ var _a, _b;
15
16
  let token;
16
17
  if (requestOptions.authentication) {
17
18
  const session = requestOptions.authentication;
@@ -26,7 +27,12 @@ export function computeProps(model, initiative, requestOptions) {
26
27
  initiative.updatedDateSource = "item.modified";
27
28
  initiative.isDiscussable = isDiscussable(initiative);
28
29
  // Handle capabilities
30
+ // TODO: Remove capabilities
29
31
  initiative.capabilities = processEntityCapabilities(((_a = model.data.settings) === null || _a === void 0 ? void 0 : _a.capabilities) || {}, InitiativeDefaultCapabilities);
32
+ /**
33
+ * Features that can be disabled by the entity owner
34
+ */
35
+ initiative.features = processEntityFeatures(((_b = model.data.settings) === null || _b === void 0 ? void 0 : _b.features) || {}, InitiativeDefaultFeatures);
30
36
  // cast b/c this takes a partial but returns a full object
31
37
  return initiative;
32
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"computeProps.js","sourceRoot":"","sources":["../../../../src/initiatives/_internal/computeProps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,UAAU,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,mBAAmB,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,aAAa,CAAC,UAAU,CAAC,CAAC;IAErD,sBAAsB;IACtB,UAAU,CAAC,YAAY,GAAG,yBAAyB,CACjD,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,YAAY,KAAI,EAAE,EACvC,6BAA6B,CAC9B,CAAC;IAEF,0DAA0D;IAC1D,OAAO,UAA4B,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"computeProps.js","sourceRoot":"","sources":["../../../../src/initiatives/_internal/computeProps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAE1F;;;;;;;GAOG;AACH,MAAM,UAAU,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,mBAAmB,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,aAAa,CAAC,UAAU,CAAC,CAAC;IAErD,sBAAsB;IACtB,4BAA4B;IAC5B,UAAU,CAAC,YAAY,GAAG,yBAAyB,CACjD,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,YAAY,KAAI,EAAE,EACvC,6BAA6B,CAC9B,CAAC;IAEF;;OAEG;IACH,UAAU,CAAC,QAAQ,GAAG,qBAAqB,CACzC,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,QAAQ,KAAI,EAAE,EACnC,yBAAyB,CAC1B,CAAC;IAEF,0DAA0D;IAC1D,OAAO,UAA4B,CAAC;AACtC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { InitiativeDefaultFeatures } from "./_internal/InitiativeBusinessRules";
1
2
  export const HUB_INITIATIVE_ITEM_TYPE = "Hub Initiative";
2
3
  /**
3
4
  * Default values of a IHubInitiative
@@ -9,6 +10,7 @@ export const DEFAULT_INITIATIVE = {
9
10
  catalog: { schemaVersion: 0 },
10
11
  permissions: [],
11
12
  schemaVersion: 2,
13
+ features: InitiativeDefaultFeatures,
12
14
  };
13
15
  /**
14
16
  * Default values for a new HubInitiative Model
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/initiatives/defaults.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,wBAAwB,GAAG,gBAAgB,CAAC;AAEzD;;GAEG;AACH,MAAM,CAAC,MAAM,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;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAW;IAC9C,IAAI,EAAE;QACJ,IAAI,EAAE,wBAAwB;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,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,MAAM,CAAC,MAAM,wBAAwB,GAAG,gBAAgB,CAAC;AAEzD;;GAEG;AACH,MAAM,CAAC,MAAM,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,yBAAyB;CACpC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAW;IAC9C,IAAI,EAAE;QACJ,IAAI,EAAE,wBAAwB;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"}
@@ -3,6 +3,7 @@
3
3
  * This hash is combined with the capabilities hash stored in the item data. Regardless of what
4
4
  * properties are defined in the item data, only the capabilities defined here will be available
5
5
  * @private
6
+ * TODO: Remove capabilities
6
7
  */
7
8
  export const PageDefaultCapabilities = {
8
9
  overview: true,
@@ -14,6 +15,7 @@ export const PageDefaultCapabilities = {
14
15
  * List of all the Page Capability Permissions
15
16
  * These are considered Hub Business Rules and are not intended
16
17
  * to be modified by consumers
18
+ * TODO: Remove capabilities
17
19
  * @private
18
20
  */
19
21
  export const PageCapabilityPermissions = [
@@ -38,12 +40,19 @@ export const PageCapabilityPermissions = [
38
40
  permissions: ["hub:page:edit"],
39
41
  },
40
42
  ];
43
+ /**
44
+ * Default features for a Project. These are the features that can be enabled / disabled by the entity owner
45
+ */
46
+ export const PageDefaultFeatures = {
47
+ // Intentally empty as this prevents overriding and adding features
48
+ };
41
49
  /**
42
50
  * Page Permission Policies
43
51
  * These define the requirements any user must meet to perform related actions
44
52
  * @private
45
53
  */
46
54
  export const PagePermissions = [
55
+ "hub:page",
47
56
  "hub:page:create",
48
57
  "hub:page:delete",
49
58
  "hub:page:edit",
@@ -54,34 +63,31 @@ export const PagePermissions = [
54
63
  * @private
55
64
  */
56
65
  export const PagePermissionPolicies = [
66
+ {
67
+ permission: "hub:page",
68
+ services: ["portal"],
69
+ },
57
70
  {
58
71
  permission: "hub:page:create",
59
- subsystems: ["pages", "sites"],
72
+ dependencies: ["hub:page"],
60
73
  authenticated: true,
61
74
  privileges: ["portal:user:createItem"],
62
- licenses: ["hub-basic", "hub-premium", "enterprise-sites"],
63
75
  },
64
76
  {
65
77
  permission: "hub:page:view",
66
- subsystems: ["pages", "sites"],
67
- authenticated: false,
68
- licenses: ["hub-basic", "hub-premium", "enterprise-sites"],
78
+ dependencies: ["hub:page"],
69
79
  },
70
80
  {
71
81
  permission: "hub:page:edit",
82
+ dependencies: ["hub:page"],
72
83
  authenticated: true,
73
- subsystems: ["pages", "sites"],
74
84
  entityEdit: true,
75
- // privileges: ["portal:admin:updateItems"], // maybe this too?
76
- licenses: ["hub-basic", "hub-premium", "enterprise-sites"],
77
85
  },
78
86
  {
79
87
  permission: "hub:page:delete",
88
+ dependencies: ["hub:page"],
80
89
  authenticated: true,
81
- subsystems: ["pages", "sites"],
82
90
  entityOwner: true,
83
- // privileges: ["portal:admin:deleteItems"], // maybe this too?
84
- licenses: ["hub-basic", "hub-premium", "enterprise-sites"],
85
91
  },
86
92
  ];
87
93
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"PageBusinessRules.js","sourceRoot":"","sources":["../../../../src/pages/_internal/PageBusinessRules.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAuB;IACzD,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,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;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,eAAe;CACP,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,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;AACH,MAAM,CAAC,MAAM,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;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAuB;IACzD,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,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;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAoB;AAClD,mEAAmE;CACpE,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,UAAU;IACV,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,eAAe;CACP,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,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;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,oBAAoB;IACpB,yBAAyB;CAC1B,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { getItemThumbnailUrl } from "../../resources";
2
- import { PageDefaultCapabilities } from "./PageBusinessRules";
2
+ import { PageDefaultCapabilities, PageDefaultFeatures, } from "./PageBusinessRules";
3
3
  import { processEntityCapabilities } from "../../capabilities";
4
+ import { processEntityFeatures } from "../../permissions/_internal/processEntityFeatures";
4
5
  /**
5
6
  * Given a model and a page, set various computed properties that can't be directly mapped
6
7
  * @private
@@ -10,7 +11,7 @@ import { processEntityCapabilities } from "../../capabilities";
10
11
  * @returns
11
12
  */
12
13
  export function computeProps(model, page, requestOptions) {
13
- var _a;
14
+ var _a, _b;
14
15
  let token;
15
16
  if (requestOptions.authentication) {
16
17
  const session = requestOptions.authentication;
@@ -24,7 +25,13 @@ export function computeProps(model, page, requestOptions) {
24
25
  page.updatedDate = new Date(model.item.modified);
25
26
  page.updatedDateSource = "item.modified";
26
27
  // // Handle capabilities
28
+ // TODO: Remove capabilities
27
29
  page.capabilities = processEntityCapabilities(((_a = model.data.settings) === null || _a === void 0 ? void 0 : _a.capabilities) || {}, PageDefaultCapabilities);
30
+ /**
31
+ * Features that can be disabled by the entity owner
32
+ * NOTE: Pages do not have any features that can be disabled
33
+ */
34
+ page.features = processEntityFeatures(((_b = model.data.settings) === null || _b === void 0 ? void 0 : _b.features) || {}, PageDefaultFeatures);
28
35
  // cast b/c this takes a partial but returns a full page
29
36
  return page;
30
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"computeProps.js","sourceRoot":"","sources":["../../../../src/pages/_internal/computeProps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D;;;;;;;GAOG;AACH,MAAM,UAAU,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,mBAAmB,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,yBAAyB,CAC3C,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,YAAY,KAAI,EAAE,EACvC,uBAAuB,CACxB,CAAC;IAEF,wDAAwD;IACxD,OAAO,IAAgB,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"computeProps.js","sourceRoot":"","sources":["../../../../src/pages/_internal/computeProps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,OAAO,EACL,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAE1F;;;;;;;GAOG;AACH,MAAM,UAAU,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,mBAAmB,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,yBAAyB,CAC3C,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,YAAY,KAAI,EAAE,EACvC,uBAAuB,CACxB,CAAC;IAEF;;;OAGG;IACH,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CACnC,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,QAAQ,KAAI,EAAE,EACnC,mBAAmB,CACpB,CAAC;IAEF,wDAAwD;IACxD,OAAO,IAAgB,CAAC;AAC1B,CAAC"}
@@ -6,10 +6,12 @@ import { getPolicyResponseCode } from "./getPolicyResponseCode";
6
6
  * @param entity
7
7
  * @returns
8
8
  */
9
- export function checkAlphaGating(policy, context, entity) {
9
+ export function checkAlphaGating(policy, context, _entity) {
10
10
  const checks = [];
11
11
  // Only return a check if the policy is defined
12
12
  if (policy.alpha) {
13
+ /* tslint:disable-next-line: no-console */
14
+ console.log("DEPRECATED: alpha policy is deprecated, please use gatedAvailability: alpha instead");
13
15
  const result = context.isAlphaOrg
14
16
  ? "granted"
15
17
  : "not-alpha-org";
@@ -1 +1 @@
1
- {"version":3,"file":"checkAlphaGating.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkAlphaGating.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,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,qBAAqB,CAAC,MAAM,CAAC;YACnC,QAAQ,EAAE,MAAM;SACjB,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"checkAlphaGating.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkAlphaGating.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,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,qBAAqB,CAAC,MAAM,CAAC;YACnC,QAAQ,EAAE,MAAM;SACjB,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { getPolicyResponseCode } from "./getPolicyResponseCode";
2
+ /**
3
+ * @internal
4
+ * Verify that the policy.availability requirement is met.
5
+ * If a value is specified in the policy, the current context must be one of those values.
6
+ * @param policy
7
+ * @param context
8
+ * @param entity
9
+ * @returns
10
+ */
11
+ export function checkAvailability(policy, context, _entity) {
12
+ let checks = [];
13
+ if (policy.availability && policy.availability.length) {
14
+ // Build array of the context's availability values
15
+ // based on the isAlphaOrg and isBetaOrg properties
16
+ const contextAvailability = [];
17
+ if (context.isAlphaOrg) {
18
+ contextAvailability.push("alpha");
19
+ }
20
+ if (context.isBetaOrg) {
21
+ contextAvailability.push("beta");
22
+ }
23
+ // if we have no values in the array, then we push in "ga"
24
+ if (!contextAvailability.length) {
25
+ contextAvailability.push("general");
26
+ }
27
+ // reduce over the policy.availability array, adding a check for each
28
+ // value that is not included in the contextAvailability array
29
+ checks = policy.availability.reduce((acc, value) => {
30
+ let result = "granted";
31
+ if (!contextAvailability.includes(value)) {
32
+ result = `not-${value}-org`;
33
+ }
34
+ const check = {
35
+ name: `user in ${value} org`,
36
+ value: contextAvailability.join(", "),
37
+ code: getPolicyResponseCode(result),
38
+ response: result,
39
+ };
40
+ acc.push(check);
41
+ return acc;
42
+ }, []);
43
+ }
44
+ return checks;
45
+ }
46
+ //# sourceMappingURL=checkAvailability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkAvailability.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkAvailability.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;;;GAQG;AACH,MAAM,UAAU,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,qBAAqB,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"}
@@ -0,0 +1,26 @@
1
+ import { getWithDefault } from "../../objects/get-with-default";
2
+ import { getPolicyResponseCode } from "./getPolicyResponseCode";
3
+ export function checkEntityFeature(policy, _entitycontext, entity) {
4
+ const checks = [];
5
+ // Only check things if the policy can be configured by the entity
6
+ // This prevents arbitrary checks from being overriden by the entity
7
+ if (entity && policy.entityConfigurable) {
8
+ const result = "feature-enabled";
9
+ // create the check, default to enabled
10
+ const check = {
11
+ name: `entity feature enabled`,
12
+ value: `entity feature ${policy.permission} check`,
13
+ code: getPolicyResponseCode(result),
14
+ response: result,
15
+ };
16
+ // Check if the feature is enabled for the entity defaulting to true
17
+ const isFeatureEnabled = getWithDefault(entity, `features.${policy.permission}`, true);
18
+ if (!isFeatureEnabled) {
19
+ check.response = "feature-disabled";
20
+ check.code = getPolicyResponseCode("feature-disabled");
21
+ }
22
+ checks.push(check);
23
+ }
24
+ return checks;
25
+ }
26
+ //# sourceMappingURL=checkEntityFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkEntityFeature.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkEntityFeature.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,UAAU,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,qBAAqB,CAAC,MAAM,CAAC;YACnC,QAAQ,EAAE,MAAM;SACjB,CAAC;QAEF,oEAAoE;QACpE,MAAM,gBAAgB,GAAG,cAAc,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,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;SACxD;QACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { getPolicyResponseCode } from "./getPolicyResponseCode";
2
+ /**
3
+ * @internal
4
+ * Verify that the policy.environment requirement is met.
5
+ *
6
+ * @param policy
7
+ * @param context
8
+ * @param entity
9
+ * @returns
10
+ */
11
+ export function checkEnvironment(policy, context, _entity) {
12
+ const checks = [];
13
+ if (policy.environments && policy.environments.length) {
14
+ let result = "granted";
15
+ if (!policy.environments.includes(context.environment)) {
16
+ result = "not-in-environment";
17
+ }
18
+ const check = {
19
+ name: `user in ${policy.environments.join(",")} org`,
20
+ value: context.environment,
21
+ code: getPolicyResponseCode(result),
22
+ response: result,
23
+ };
24
+ checks.push(check);
25
+ }
26
+ return checks;
27
+ }
28
+ //# sourceMappingURL=checkEnvironment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkEnvironment.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkEnvironment.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;;;GAQG;AACH,MAAM,UAAU,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,qBAAqB,CAAC,MAAM,CAAC;YACnC,QAAQ,EAAE,MAAM;SACjB,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { checkPermission } from "../checkPermission";
2
+ /**
3
+ * @internal
4
+ * Check the parent policies for the given policy
5
+ * @param policy
6
+ * @param context
7
+ * @param entity
8
+ * @returns
9
+ */
10
+ export function checkParents(policy, context, entity) {
11
+ var _a;
12
+ let checks = [];
13
+ if ((_a = policy.dependencies) === null || _a === void 0 ? void 0 : _a.length) {
14
+ // map over the parents array of permissions and check each one
15
+ checks = policy.dependencies.reduce((acc, parent) => {
16
+ const result = checkPermission(parent, context, entity);
17
+ acc = [...acc, ...result.checks];
18
+ return acc;
19
+ }, []);
20
+ }
21
+ return checks;
22
+ }
23
+ //# sourceMappingURL=checkParents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkParents.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkParents.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIrD;;;;;;;GAOG;AACH,MAAM,UAAU,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,eAAe,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"}
@@ -0,0 +1,24 @@
1
+ import { getPolicyResponseCode } from "./getPolicyResponseCode";
2
+ export function checkServiceStatus(policy, context, _entity) {
3
+ let checks = [];
4
+ if (policy.services) {
5
+ const services = context.serviceStatus;
6
+ // we need each service to have a status of "online"
7
+ // and if not, return status info
8
+ checks = policy.services.map((service) => {
9
+ let result = "granted";
10
+ if (services[service] !== "online") {
11
+ result = `service-${services[service]}`;
12
+ }
13
+ const check = {
14
+ name: `service ${service} online`,
15
+ value: `service is ${services[service]}`,
16
+ code: getPolicyResponseCode(result),
17
+ response: result,
18
+ };
19
+ return check;
20
+ });
21
+ }
22
+ return checks;
23
+ }
24
+ //# sourceMappingURL=checkServiceStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkServiceStatus.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkServiceStatus.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,UAAU,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,qBAAqB,CAAC,MAAM,CAAC;gBACnC,QAAQ,EAAE,MAAM;aACjB,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -17,8 +17,12 @@ const policyResponseCodes = [
17
17
  { response: "edit-access", code: "PC113" },
18
18
  { response: "invalid-permission", code: "PC114" },
19
19
  { response: "privilege-required", code: "PC115" },
20
+ // ----------- TODO Remove with Capabilities
20
21
  { response: "system-offline", code: "PC116" },
21
22
  { response: "system-maintenance", code: "PC117" },
23
+ // -------------------------------------------
24
+ { response: "service-offline", code: "PC116" },
25
+ { response: "service-maintenance", code: "PC117" },
22
26
  { response: "entity-required", code: "PC118" },
23
27
  { response: "not-authenticated", code: "PC119" },
24
28
  { response: "not-alpha-org", code: "PC120" },
@@ -34,6 +38,10 @@ const policyResponseCodes = [
34
38
  { response: "assertion-failed", code: "PC130" },
35
39
  { response: "assertion-requires-numeric-values", code: "PC131" },
36
40
  { response: "property-match", code: "PC132" },
41
+ { response: "not-beta-org", code: "PC133" },
42
+ { response: "not-in-environment", code: "PC134" },
43
+ { response: "feature-disabled", code: "PC135" },
44
+ { response: "feature-enabled", code: "PC136" },
37
45
  ];
38
46
  /**
39
47
  * 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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"}