@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
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Take an entity's features and merge them with the default features ensuring
3
+ * that only the featires defined in the business rules are allowed through.
4
+ * @param entityFeatures
5
+ * @param defaultFeatures
6
+ * @returns
7
+ */
8
+ export function processEntityFeatures(entityFeatures, defaultFeatures) {
9
+ // Extend the defaults with the entity values
10
+ const features = Object.assign(Object.assign({}, defaultFeatures), entityFeatures);
11
+ // Remove any features that are not in the default features hash.
12
+ // this prevents enabling features that are not defined in hub business rules
13
+ const defaultKeys = Object.keys(defaultFeatures);
14
+ const keysToRemove = Object.keys(features).reduce((acc, key) => {
15
+ if (!defaultKeys.includes(key)) {
16
+ acc.push(key);
17
+ }
18
+ return acc;
19
+ }, []);
20
+ // remove any keys that are not in the default hash
21
+ keysToRemove.forEach((key) => {
22
+ delete features[key];
23
+ });
24
+ return features;
25
+ }
26
+ //# 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,MAAM,UAAU,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"}
@@ -10,6 +10,11 @@ import { checkEdit } from "./_internal/checkEdit";
10
10
  import { checkPrivileges } from "./_internal/checkPrivileges";
11
11
  import { checkEntityPolicy } from "./_internal/checkEntityPolicy";
12
12
  import { checkAssertions } from "./_internal/checkAssertions";
13
+ import { checkParents } from "./_internal/checkParents";
14
+ import { checkEnvironment } from "./_internal/checkEnvironment";
15
+ import { checkAvailability } from "./_internal/checkAvailability";
16
+ import { checkEntityFeature } from "./_internal/checkEntityFeature";
17
+ import { checkServiceStatus } from "./_internal/checkServiceStatus";
13
18
  /**
14
19
  * Check a permission against the system policies, and possibly an entity policy
15
20
  * @param permission
@@ -40,7 +45,12 @@ export function checkPermission(permission, context, entity) {
40
45
  checks: [],
41
46
  };
42
47
  const checks = [
48
+ checkParents,
49
+ checkServiceStatus,
50
+ checkEntityFeature,
43
51
  checkAuthentication,
52
+ checkEnvironment,
53
+ checkAvailability,
44
54
  checkLicense,
45
55
  checkPrivileges,
46
56
  checkOwner,
@@ -1 +1 @@
1
- {"version":3,"file":"checkPermission.js","sourceRoot":"","sources":["../../../src/permissions/checkPermission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkPermission.js","sourceRoot":"","sources":["../../../src/permissions/checkPermission.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAGL,YAAY,GAGb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,UAAsB,EACtB,OAAuB,EACvB,MAA4B;IAE5B,+CAA+C;IAC/C,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;QAC7B,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,oBAAoB;YAC9B,IAAI,EAAE,qBAAqB,CAAC,oBAAoB,CAAC;YACjD,MAAM,EAAE,EAAE;SACkB,CAAC;KAChC;IAED,4CAA4C;IAC5C,MAAM,YAAY,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAErD,iCAAiC;IAEjC,qBAAqB;IACrB,MAAM,QAAQ,GAA8B;QAC1C,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC;QACtC,MAAM,EAAE,EAAE;KACX,CAAC;IAEF,MAAM,MAAM,GAAG;QACb,YAAY;QACZ,kBAAkB;QAClB,kBAAkB;QAClB,mBAAmB;QACnB,gBAAgB;QAChB,iBAAiB;QACjB,YAAY;QACZ,eAAe;QACf,UAAU;QACV,SAAS;QACT,eAAe;QACf,gBAAgB;KACjB,CAAC,MAAM,CAAC,CAAC,GAAmB,EAAE,EAAE,EAAE,EAAE;QACnC,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QACrD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,6DAA6D;IAC7D,uEAAuE;IACvE,yDAAyD;IACzD,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE;YACnE,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YACnC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YAC3B,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC;SACzB;IACH,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;IAEzB,sEAAsE;IACtE,IAAI,MAAM,EAAE;QACV,MAAM,cAAc,GAA8B,cAAc,CAC9D,MAAM,EACN,aAAa,EACb,EAAE,CACH,CAAC;QAEF,MAAM,wBAAwB,GAAG,cAAc,CAAC,MAAM,CACpD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CACnC,CAAC;QACF,8DAA8D;QAC9D,+DAA+D;QAC/D,2BAA2B;QAC3B,MAAM,YAAY,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC3D,OAAO,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,0CAA0C;QAC1C,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;QACxE,kEAAkE;QAClE,mEAAmE;QACnE,8BAA8B;QAC9B,IACE,YAAY,CAAC,MAAM;YACnB,CAAC,YAAY;YACb,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAC/B;YACA,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC;YACxB,QAAQ,CAAC,QAAQ,GAAG,aAAa,CAAC;SACnC;QACD,gCAAgC;QAChC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC;KACzD;IACD,sBAAsB;IACtB,OAAO,QAAQ,CAAC;AAClB,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 ProjectDefaultCapabilities = {
8
9
  overview: true,
@@ -16,6 +17,7 @@ export const ProjectDefaultCapabilities = {
16
17
  * List of all the Project Capability Permissions
17
18
  * These are considered Hub Business Rules and are not intended
18
19
  * to be modified by consumers
20
+ * TODO: Remove capabilities
19
21
  * @private
20
22
  */
21
23
  export const ProjectCapabilityPermissions = [
@@ -50,56 +52,80 @@ export const ProjectCapabilityPermissions = [
50
52
  permissions: ["hub:project:edit"],
51
53
  },
52
54
  ];
55
+ /**
56
+ * Default features for a Project. These are the features that can be enabled / disabled by the entity owner
57
+ */
58
+ export const ProjectDefaultFeatures = {
59
+ "hub:project:events": false,
60
+ "hub:project:content": true,
61
+ "hub:project:discussions": false,
62
+ };
53
63
  /**
54
64
  * Project Permission Policies
55
65
  * These define the requirements any user must meet to perform related actions
56
66
  * @private
57
67
  */
58
68
  export const ProjectPermissions = [
69
+ "hub:project",
59
70
  "hub:project:create",
60
71
  "hub:project:delete",
61
72
  "hub:project:edit",
62
73
  "hub:project:view",
63
74
  "hub:project:owner",
75
+ "hub:project:events",
76
+ "hub:project:content",
77
+ "hub:project:discussions",
64
78
  ];
65
79
  /**
66
80
  * Project permission policies
67
81
  * @private
68
82
  */
69
83
  export const ProjectPermissionPolicies = [
84
+ {
85
+ permission: "hub:project",
86
+ services: ["portal"],
87
+ licenses: ["hub-premium"],
88
+ },
70
89
  {
71
90
  permission: "hub:project:create",
72
- subsystems: ["projects"],
73
91
  authenticated: true,
92
+ dependencies: ["hub:project"],
74
93
  privileges: ["portal:user:createItem"],
75
- licenses: ["hub-premium"],
76
94
  },
77
95
  {
96
+ // Anyone can view a project
78
97
  permission: "hub:project:view",
79
- subsystems: ["projects"],
80
- authenticated: false,
81
- licenses: ["hub-basic", "hub-premium"],
98
+ subsystems: ["platform"],
82
99
  },
83
100
  {
84
101
  permission: "hub:project:edit",
102
+ dependencies: ["hub:project"],
85
103
  authenticated: true,
86
- subsystems: ["projects"],
87
104
  entityEdit: true,
88
- licenses: ["hub-basic", "hub-premium"],
89
105
  },
90
106
  {
91
107
  permission: "hub:project:delete",
108
+ dependencies: ["hub:project"],
92
109
  authenticated: true,
93
- subsystems: ["projects"],
94
110
  entityOwner: true,
95
- licenses: ["hub-premium"],
96
111
  },
97
112
  {
98
113
  permission: "hub:project:owner",
114
+ dependencies: ["hub:project"],
99
115
  authenticated: true,
100
- subsystems: ["projects"],
101
116
  entityOwner: true,
102
- licenses: ["hub-premium"],
117
+ },
118
+ {
119
+ permission: "hub:project:events",
120
+ dependencies: ["hub:project:view"],
121
+ },
122
+ {
123
+ permission: "hub:project:content",
124
+ dependencies: ["hub:project:edit"],
125
+ },
126
+ {
127
+ permission: "hub:project:discussions",
128
+ dependencies: ["hub:project:view"],
103
129
  },
104
130
  ];
105
131
  //# sourceMappingURL=ProjectBusinessRules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectBusinessRules.js","sourceRoot":"","sources":["../../../../src/projects/_internal/ProjectBusinessRules.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAuB;IAC5D,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAA4B;IACnE;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,CAAC,kBAAkB,CAAC;KAClC;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,kBAAkB,CAAC;KAClC;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,CAAC,mBAAmB,CAAC;KACnC;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,kBAAkB,CAAC;KAClC;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;KAC7D;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,WAAW;QACvB,WAAW,EAAE,CAAC,kBAAkB,CAAC;KAClC;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,oBAAoB;IACpB,oBAAoB;IACpB,kBAAkB;IAClB,kBAAkB;IAClB,mBAAmB;CACX,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAwB;IAC5D;QACE,UAAU,EAAE,oBAAoB;QAChC,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,kBAAkB;QAC9B,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC;KACvC;IACD;QACE,UAAU,EAAE,kBAAkB;QAC9B,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC;KACvC;IACD;QACE,UAAU,EAAE,oBAAoB;QAChC,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD;QACE,UAAU,EAAE,mBAAmB;QAC/B,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":"ProjectBusinessRules.js","sourceRoot":"","sources":["../../../../src/projects/_internal/ProjectBusinessRules.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAuB;IAC5D,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAA4B;IACnE;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,CAAC,kBAAkB,CAAC;KAClC;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,kBAAkB,CAAC;KAClC;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,CAAC,mBAAmB,CAAC;KACnC;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,kBAAkB,CAAC;KAClC;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;KAC7D;IACD;QACE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,WAAW;QACvB,WAAW,EAAE,CAAC,kBAAkB,CAAC;KAClC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAoB;IACrD,oBAAoB,EAAE,KAAK;IAC3B,qBAAqB,EAAE,IAAI;IAC3B,yBAAyB,EAAE,KAAK;CACjC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,aAAa;IACb,oBAAoB;IACpB,oBAAoB;IACpB,kBAAkB;IAClB,kBAAkB;IAClB,mBAAmB;IACnB,oBAAoB;IACpB,qBAAqB;IACrB,yBAAyB;CACjB,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAwB;IAC5D;QACE,UAAU,EAAE,aAAa;QACzB,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD;QACE,UAAU,EAAE,oBAAoB;QAChC,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,CAAC,aAAa,CAAC;QAC7B,UAAU,EAAE,CAAC,wBAAwB,CAAC;KACvC;IACD;QACE,4BAA4B;QAC5B,UAAU,EAAE,kBAAkB;QAC9B,UAAU,EAAE,CAAC,UAAU,CAAC;KACzB;IACD;QACE,UAAU,EAAE,kBAAkB;QAC9B,YAAY,EAAE,CAAC,aAAa,CAAC;QAC7B,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;KACjB;IACD;QACE,UAAU,EAAE,oBAAoB;QAChC,YAAY,EAAE,CAAC,aAAa,CAAC;QAC7B,aAAa,EAAE,IAAI;QACnB,WAAW,EAAE,IAAI;KAClB;IACD;QACE,UAAU,EAAE,mBAAmB;QAC/B,YAAY,EAAE,CAAC,aAAa,CAAC;QAC7B,aAAa,EAAE,IAAI;QACnB,WAAW,EAAE,IAAI;KAClB;IACD;QACE,UAAU,EAAE,oBAAoB;QAChC,YAAY,EAAE,CAAC,kBAAkB,CAAC;KACnC;IACD;QACE,UAAU,EAAE,qBAAqB;QACjC,YAAY,EAAE,CAAC,kBAAkB,CAAC;KACnC;IACD;QACE,UAAU,EAAE,yBAAyB;QACrC,YAAY,EAAE,CAAC,kBAAkB,CAAC;KACnC;CACF,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { getItemThumbnailUrl } from "../../resources";
2
- import { ProjectDefaultCapabilities } from "./ProjectBusinessRules";
2
+ import { ProjectDefaultCapabilities, ProjectDefaultFeatures, } from "./ProjectBusinessRules";
3
3
  import { processEntityCapabilities } from "../../capabilities";
4
4
  import { isDiscussable } from "../../discussions";
5
+ import { processEntityFeatures } from "../../permissions/_internal/processEntityFeatures";
5
6
  /**
6
7
  * Given a model and a project, 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, project, 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, project, requestOptions) {
26
27
  project.updatedDateSource = "item.modified";
27
28
  project.isDiscussable = isDiscussable(project);
28
29
  // Handle capabilities
30
+ // TODO: Remove capabilities
29
31
  project.capabilities = processEntityCapabilities(((_a = model.data.settings) === null || _a === void 0 ? void 0 : _a.capabilities) || {}, ProjectDefaultCapabilities);
32
+ /**
33
+ * Features that can be disabled by the entity owner
34
+ */
35
+ project.features = processEntityFeatures(((_b = model.data.settings) === null || _b === void 0 ? void 0 : _b.features) || {}, ProjectDefaultFeatures);
30
36
  // cast b/c this takes a partial but returns a full project
31
37
  return project;
32
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"computeProps.js","sourceRoot":"","sources":["../../../../src/projects/_internal/computeProps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAa,EACb,OAA6B,EAC7B,cAA+B;;IAE/B,IAAI,KAAa,CAAC;IAClB,IAAI,cAAc,CAAC,cAAc,EAAE;QACjC,MAAM,OAAO,GAAgB,cAAc,CAAC,cAA6B,CAAC;QAC1E,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;KACvB;IACD,gBAAgB;IAChB,OAAO,CAAC,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;IAE9E,eAAe;IACf,OAAO,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,CAAC,iBAAiB,GAAG,cAAc,CAAC;IAC3C,OAAO,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpD,OAAO,CAAC,iBAAiB,GAAG,eAAe,CAAC;IAC5C,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAE/C,sBAAsB;IACtB,OAAO,CAAC,YAAY,GAAG,yBAAyB,CAC9C,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,YAAY,KAAI,EAAE,EACvC,0BAA0B,CAC3B,CAAC;IAEF,2DAA2D;IAC3D,OAAO,OAAsB,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"computeProps.js","sourceRoot":"","sources":["../../../../src/projects/_internal/computeProps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAE1F;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAa,EACb,OAA6B,EAC7B,cAA+B;;IAE/B,IAAI,KAAa,CAAC;IAClB,IAAI,cAAc,CAAC,cAAc,EAAE;QACjC,MAAM,OAAO,GAAgB,cAAc,CAAC,cAA6B,CAAC;QAC1E,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;KACvB;IACD,gBAAgB;IAChB,OAAO,CAAC,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;IAE9E,eAAe;IACf,OAAO,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,CAAC,iBAAiB,GAAG,cAAc,CAAC;IAC3C,OAAO,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpD,OAAO,CAAC,iBAAiB,GAAG,eAAe,CAAC;IAC5C,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAE/C,sBAAsB;IACtB,4BAA4B;IAC5B,OAAO,CAAC,YAAY,GAAG,yBAAyB,CAC9C,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,YAAY,KAAI,EAAE,EACvC,0BAA0B,CAC3B,CAAC;IAEF;;OAEG;IACH,OAAO,CAAC,QAAQ,GAAG,qBAAqB,CACtC,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,QAAQ,KAAI,EAAE,EACnC,sBAAsB,CACvB,CAAC;IAEF,2DAA2D;IAC3D,OAAO,OAAsB,CAAC;AAChC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { PROJECT_STATUSES } from "../core";
2
+ import { InitiativeDefaultFeatures } from "../initiatives/_internal/InitiativeBusinessRules";
2
3
  export const HUB_PROJECT_ITEM_TYPE = "Hub Project";
3
4
  /**
4
5
  * Default values of a IHubProject
@@ -16,6 +17,7 @@ export const DEFAULT_PROJECT = {
16
17
  featuredContentIds: [],
17
18
  showMap: true,
18
19
  },
20
+ features: InitiativeDefaultFeatures,
19
21
  };
20
22
  /**
21
23
  * Default values for a new HubProject Model
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/projects/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGxD,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAyB;IACnD,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IAC7B,IAAI,EAAE,EAAE;IACR,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,CAAC;IAChB,MAAM,EAAE,gBAAgB,CAAC,UAAU;IACnC,IAAI,EAAE,EAAE;IACR,YAAY,EAAE,CAAC,qBAAqB,CAAC;IACrC,IAAI,EAAE;QACJ,QAAQ,EAAE,EAAE;QACZ,kBAAkB,EAAE,EAAE;QACtB,OAAO,EAAE,IAAI;KACd;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAW;IAC3C,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,CAAC,qBAAqB,CAAC;QACrC,UAAU,EAAE;YACV,IAAI,EAAE,EAAE;YACR,aAAa,EAAE,CAAC;SACjB;KACF;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,EAAE;QACf,MAAM,EAAE,gBAAgB,CAAC,UAAU;QACnC,IAAI,EAAE;YACJ,QAAQ,EAAE,EAAE;YACZ,kBAAkB,EAAE,EAAE;YACtB,OAAO,EAAE,IAAI;SACd;KACF;CACmB,CAAC"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/projects/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kDAAkD,CAAC;AAG7F,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAyB;IACnD,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IAC7B,IAAI,EAAE,EAAE;IACR,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,CAAC;IAChB,MAAM,EAAE,gBAAgB,CAAC,UAAU;IACnC,IAAI,EAAE,EAAE;IACR,YAAY,EAAE,CAAC,qBAAqB,CAAC;IACrC,IAAI,EAAE;QACJ,QAAQ,EAAE,EAAE;QACZ,kBAAkB,EAAE,EAAE;QACtB,OAAO,EAAE,IAAI;KACd;IACD,QAAQ,EAAE,yBAAyB;CACpC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAW;IAC3C,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,CAAC,qBAAqB,CAAC;QACrC,UAAU,EAAE;YACV,IAAI,EAAE,EAAE;YACR,aAAa,EAAE,CAAC;SACjB;KACF;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,EAAE;QACf,MAAM,EAAE,gBAAgB,CAAC,UAAU;QACnC,IAAI,EAAE;YACJ,QAAQ,EAAE,EAAE;YACZ,kBAAkB,EAAE,EAAE;YACtB,OAAO,EAAE,IAAI;SACd;KACF;CACmB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  /**
2
+ * DEPRECATED
2
3
  * Default capabilities for a Site. If not listed here, the capability will not be available
3
4
  * This hash is combined with the capabilities hash stored in the item data. Regardless of what
4
5
  * properties are defined in the item data, only the capabilities defined here will be available
@@ -12,9 +13,11 @@ export const SiteDefaultCapabilities = {
12
13
  dashboard: true,
13
14
  };
14
15
  /**
16
+ * DEPRECATED
15
17
  * List of all the Site Capability Permissions
16
18
  * These are considered Hub Business Rules and are not intended
17
19
  * to be modified by consumers
20
+ * @private
18
21
  */
19
22
  export const SiteCapabilityPermissions = [
20
23
  {
@@ -43,47 +46,73 @@ export const SiteCapabilityPermissions = [
43
46
  permissions: ["hub:site:edit"],
44
47
  },
45
48
  ];
49
+ /**
50
+ * Default features for a Site. These are the features that can be enabled / disabled by the entity owner
51
+ */
52
+ export const SiteDefaultFeatures = {
53
+ "hub:site:events": false,
54
+ "hub:site:content": true,
55
+ "hub:site:discussions": false,
56
+ };
46
57
  /**
47
58
  * Site Permissions
48
59
  * This feeds into the Permissions type
49
60
  */
50
61
  export const SitePermissions = [
62
+ "hub:site",
51
63
  "hub:site:create",
52
64
  "hub:site:delete",
53
65
  "hub:site:edit",
54
66
  "hub:site:view",
67
+ "hub:site:owner",
68
+ "hub:site:events",
69
+ "hub:site:content",
70
+ "hub:site:discussions",
55
71
  ];
56
72
  /**
57
73
  * Site permission policies
58
74
  * @private
59
75
  */
60
76
  export const SitesPermissionPolicies = [
77
+ {
78
+ permission: "hub:site",
79
+ services: ["portal"],
80
+ licenses: ["hub-basic", "hub-premium", "enterprise-sites"],
81
+ },
61
82
  {
62
83
  permission: "hub:site:create",
63
- subsystems: ["sites"],
84
+ dependencies: ["hub:site"],
64
85
  authenticated: true,
65
86
  privileges: ["portal:user:createItem"],
66
- licenses: ["hub-basic", "hub-premium", "enterprise-sites"],
67
87
  },
68
88
  {
69
89
  permission: "hub:site:view",
70
- subsystems: ["sites"],
90
+ dependencies: ["hub:site"],
71
91
  authenticated: false,
72
- licenses: ["hub-basic", "hub-premium", "enterprise-sites"],
73
92
  },
74
93
  {
75
94
  permission: "hub:site:delete",
76
- subsystems: ["sites"],
95
+ dependencies: ["hub:site"],
77
96
  authenticated: true,
78
- licenses: ["hub-basic", "hub-premium", "enterprise-sites"],
79
97
  entityOwner: true,
80
98
  },
81
99
  {
82
100
  permission: "hub:site:edit",
83
101
  entityEdit: true,
84
- subsystems: ["sites"],
102
+ dependencies: ["hub:site"],
85
103
  authenticated: true,
86
- licenses: ["hub-basic", "hub-premium", "enterprise-sites"],
104
+ },
105
+ {
106
+ permission: "hub:site:events",
107
+ dependencies: ["hub:site:view"],
108
+ },
109
+ {
110
+ permission: "hub:site:content",
111
+ dependencies: ["hub:site:edit"],
112
+ },
113
+ {
114
+ permission: "hub:site:discussions",
115
+ dependencies: ["hub:site:view"],
87
116
  },
88
117
  ];
89
118
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"SiteBusinessRules.js","sourceRoot":"","sources":["../../../../src/sites/_internal/SiteBusinessRules.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAuB;IACzD,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF;;;;GAIG;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,EAAE,eAAe,CAAC;KAChD;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,WAAW;QACvB,WAAW,EAAE,CAAC,eAAe,CAAC;KAC/B;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,eAAe;CACP,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAwB;IAC1D;QACE,UAAU,EAAE,iBAAiB;QAC7B,UAAU,EAAE,CAAC,OAAO,CAAC;QACrB,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,CAAC;QACrB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,kBAAkB,CAAC;KAC3D;IACD;QACE,UAAU,EAAE,iBAAiB;QAC7B,UAAU,EAAE,CAAC,OAAO,CAAC;QACrB,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,kBAAkB,CAAC;QAC1D,WAAW,EAAE,IAAI;KAClB;IACD;QACE,UAAU,EAAE,eAAe;QAC3B,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,CAAC,OAAO,CAAC;QACrB,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,kBAAkB,CAAC;KAC3D;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,oBAAoB;IACpB,mBAAmB;IACnB,yBAAyB;CAC1B,CAAC"}
1
+ {"version":3,"file":"SiteBusinessRules.js","sourceRoot":"","sources":["../../../../src/sites/_internal/SiteBusinessRules.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAuB;IACzD,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,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,EAAE,eAAe,CAAC;KAChD;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,WAAW;QACvB,WAAW,EAAE,CAAC,eAAe,CAAC;KAC/B;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAoB;IAClD,iBAAiB,EAAE,KAAK;IACxB,kBAAkB,EAAE,IAAI;IACxB,sBAAsB,EAAE,KAAK;CAC9B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,UAAU;IACV,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,kBAAkB;IAClB,sBAAsB;CACd,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAwB;IAC1D;QACE,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,kBAAkB,CAAC;KAC3D;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;QAC1B,aAAa,EAAE,KAAK;KACrB;IACD;QACE,UAAU,EAAE,iBAAiB;QAC7B,YAAY,EAAE,CAAC,UAAU,CAAC;QAC1B,aAAa,EAAE,IAAI;QACnB,WAAW,EAAE,IAAI;KAClB;IACD;QACE,UAAU,EAAE,eAAe;QAC3B,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,CAAC,UAAU,CAAC;QAC1B,aAAa,EAAE,IAAI;KACpB;IACD;QACE,UAAU,EAAE,iBAAiB;QAC7B,YAAY,EAAE,CAAC,eAAe,CAAC;KAChC;IACD;QACE,UAAU,EAAE,kBAAkB;QAC9B,YAAY,EAAE,CAAC,eAAe,CAAC;KAChC;IACD;QACE,UAAU,EAAE,sBAAsB;QAClC,YAAY,EAAE,CAAC,eAAe,CAAC;KAChC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,oBAAoB;IACpB,mBAAmB;IACnB,yBAAyB;CAC1B,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import { getItemThumbnailUrl } from "../../resources";
2
- import { SiteDefaultCapabilities } from "./SiteBusinessRules";
2
+ import { SiteDefaultCapabilities, SiteDefaultFeatures, } from "./SiteBusinessRules";
3
3
  import { processEntityCapabilities } from "../../capabilities";
4
4
  import { upgradeCatalogSchema } from "../../search/upgradeCatalogSchema";
5
5
  import { isDiscussable } from "../../discussions";
6
+ import { processEntityFeatures } from "../../permissions/_internal/processEntityFeatures";
6
7
  /**
7
8
  * Given a model and a site, set various computed properties that can't be directly mapped
8
9
  * @private
@@ -12,7 +13,7 @@ import { isDiscussable } from "../../discussions";
12
13
  * @returns
13
14
  */
14
15
  export function computeProps(model, site, requestOptions) {
15
- var _a;
16
+ var _a, _b;
16
17
  let token;
17
18
  if (requestOptions.authentication) {
18
19
  const session = requestOptions.authentication;
@@ -28,7 +29,12 @@ export function computeProps(model, site, requestOptions) {
28
29
  site.isDiscussable = isDiscussable(site);
29
30
  // Handle capabilities
30
31
  // NOTE: This does not currently contain the older "capabilities" values!
32
+ // TODO: Remove capabilities
31
33
  site.capabilities = processEntityCapabilities(((_a = model.data.settings) === null || _a === void 0 ? void 0 : _a.capabilities) || {}, SiteDefaultCapabilities);
34
+ /**
35
+ * Features that can be disabled by the entity owner
36
+ */
37
+ site.features = processEntityFeatures(((_b = model.data.settings) === null || _b === void 0 ? void 0 : _b.features) || {}, SiteDefaultFeatures);
32
38
  // Perform schema upgrades on the new catalog structure
33
39
  site.catalog = upgradeCatalogSchema(site.catalog);
34
40
  // cast b/c this takes a partial but returns a full site
@@ -1 +1 @@
1
- {"version":3,"file":"computeProps.js","sourceRoot":"","sources":["../../../../src/sites/_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;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD;;;;;;;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;IACzC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAEzC,sBAAsB;IACtB,yEAAyE;IACzE,IAAI,CAAC,YAAY,GAAG,yBAAyB,CAC3C,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,YAAY,KAAI,EAAE,EACvC,uBAAuB,CACxB,CAAC;IAEF,uDAAuD;IACvD,IAAI,CAAC,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAElD,wDAAwD;IACxD,OAAO,IAAgB,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"computeProps.js","sourceRoot":"","sources":["../../../../src/sites/_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,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,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;IACzC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAEzC,sBAAsB;IACtB,yEAAyE;IACzE,4BAA4B;IAC5B,IAAI,CAAC,YAAY,GAAG,yBAAyB,CAC3C,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,YAAY,KAAI,EAAE,EACvC,uBAAuB,CACxB,CAAC;IAEF;;OAEG;IACH,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CACnC,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,QAAQ,KAAI,EAAE,EACnC,mBAAmB,CACpB,CAAC;IAEF,uDAAuD;IACvD,IAAI,CAAC,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAElD,wDAAwD;IACxD,OAAO,IAAgB,CAAC;AAC1B,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { SiteDefaultFeatures } from "./_internal/SiteBusinessRules";
1
2
  export const HUB_SITE_ITEM_TYPE = "Hub Site Application";
2
3
  /**
3
4
  * Default values of a IHubSite
@@ -9,6 +10,7 @@ export const DEFAULT_SITE = {
9
10
  catalog: { schemaVersion: 0 },
10
11
  permissions: [],
11
12
  schemaVersion: 1,
13
+ features: SiteDefaultFeatures,
12
14
  };
13
15
  /**
14
16
  * Default values for a new HubProject Model
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/sites/defaults.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAEzD;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAsB;IAC7C,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,EAAE;IACR,YAAY,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;IACrC,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IAC7B,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAW;IACxC,IAAI,EAAE;QACJ,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;QACrC,UAAU,EAAE;YACV,IAAI,EAAE,EAAE;YACR,aAAa,EAAE,CAAC;SACjB;KACF;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,EAAE;KACX;CACmB,CAAC"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/sites/defaults.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAEzD;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAsB;IAC7C,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,EAAE;IACR,YAAY,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;IACrC,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IAC7B,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,CAAC;IAChB,QAAQ,EAAE,mBAAmB;CAC9B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAW;IACxC,IAAI,EAAE;QACJ,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;QACrC,UAAU,EAAE;YACV,IAAI,EAAE,EAAE;YACR,aAAa,EAAE,CAAC;SACjB;KACF;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,EAAE;KACX;CACmB,CAAC"}
@@ -0,0 +1,20 @@
1
+ export function getEnvironmentFromPortalUrl(portalUrl) {
2
+ // default to enterprise because we don't know the patterns for that
3
+ // other than it's _not_ arcgis.com
4
+ let env = "enterprise";
5
+ // if we're on arcgis.com, we can assume prod...
6
+ if (portalUrl.includes("arcgis.com")) {
7
+ env = "production";
8
+ }
9
+ // unless we're on a subdomain which suggest we might be in a dev or qa environment
10
+ if (portalUrl.includes("qaext.arcgis.com") ||
11
+ portalUrl.includes("mapsqa.arcgis.com")) {
12
+ env = "qaext";
13
+ }
14
+ if (portalUrl.includes("devext.arcgis.com") ||
15
+ portalUrl.includes("mapsdev.arcgis.com")) {
16
+ env = "devext";
17
+ }
18
+ return env;
19
+ }
20
+ //# sourceMappingURL=getEnvironmentFromPortalUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getEnvironmentFromPortalUrl.js","sourceRoot":"","sources":["../../../src/utils/getEnvironmentFromPortalUrl.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,2BAA2B,CAAC,SAAiB;IAC3D,oEAAoE;IACpE,mCAAmC;IACnC,IAAI,GAAG,GAAmB,YAAY,CAAC;IACvC,gDAAgD;IAChD,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;QACpC,GAAG,GAAG,YAAY,CAAC;KACpB;IACD,mFAAmF;IACnF,IACE,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACtC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EACvC;QACA,GAAG,GAAG,OAAO,CAAC;KACf;IACD,IACE,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACvC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EACxC;QACA,GAAG,GAAG,QAAQ,CAAC;KAChB;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -21,4 +21,5 @@ export * from "./sessionLocalStorage";
21
21
  export * from "./dasherize";
22
22
  export * from "./titleize";
23
23
  export * from "./memoize";
24
+ export * from "./getEnvironmentFromPortalUrl";
24
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,+BAA+B,CAAC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ArcGISContext = void 0;
4
4
  const objects_1 = require("./objects");
5
+ const getEnvironmentFromPortalUrl_1 = require("./utils/getEnvironmentFromPortalUrl");
5
6
  /**
6
7
  * Hash of Hub API end points so updates
7
8
  * are centralized
@@ -34,6 +35,7 @@ class ArcGISContext {
34
35
  this._portalUrl = opts.portalUrl;
35
36
  this._hubUrl = opts.hubUrl;
36
37
  this._systemStatus = opts.systemStatus;
38
+ this._serviceStatus = opts.serviceStatus;
37
39
  if (opts.authentication) {
38
40
  this._authentication = opts.authentication;
39
41
  }
@@ -73,6 +75,26 @@ class ArcGISContext {
73
75
  }
74
76
  return result;
75
77
  }
78
+ /**
79
+ * Is the users org in the beta orgs list?
80
+ * Beta orgs are passed in via properties.betaOrgs
81
+ */
82
+ get isBetaOrg() {
83
+ var _a, _b;
84
+ let result = false;
85
+ const orgs = ((_a = this._properties) === null || _a === void 0 ? void 0 : _a.betaOrgs) || [];
86
+ const orgId = (_b = this._portalSelf) === null || _b === void 0 ? void 0 : _b.id;
87
+ if (orgs.length && orgId) {
88
+ result = orgs.includes(orgId);
89
+ }
90
+ return result;
91
+ }
92
+ /**
93
+ * Return the HubEnvironment of the current context
94
+ */
95
+ get environment() {
96
+ return getEnvironmentFromPortalUrl_1.getEnvironmentFromPortalUrl(this._portalUrl);
97
+ }
76
98
  /**
77
99
  * Return `IUserRequestOptions`, which is used for REST-JS
78
100
  * functions which require authentication information.
@@ -178,10 +200,19 @@ class ArcGISContext {
178
200
  }
179
201
  /**
180
202
  * Returns the current hub system status information
203
+ * TODO: Remove with Capabilities
181
204
  */
182
205
  get systemStatus() {
206
+ // tslint:disable-next-line: no-console
207
+ console.warn(`DEPRECATED: context.systemStatus is deprecated use context.serviceStatus instead`);
183
208
  return this._systemStatus;
184
209
  }
210
+ /**
211
+ * Returns the current hub service status information
212
+ */
213
+ get serviceStatus() {
214
+ return this._serviceStatus;
215
+ }
185
216
  /**
186
217
  * Returns the url to the sharing api composed from portalUrl
187
218
  * i.e. https://myorg.maps.arcgis.com/sharing/rest
@@ -1 +1 @@
1
- {"version":3,"file":"ArcGISContext.js","sourceRoot":"","sources":["../../src/ArcGISContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArcGISContext.js","sourceRoot":"","sources":["../../src/ArcGISContext.ts"],"names":[],"mappings":"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"}