@esri/hub-common 12.0.0-alpha.1 → 12.0.0-alpha.3

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 (225) hide show
  1. package/dist/esm/ArcGISContext.js +14 -0
  2. package/dist/esm/ArcGISContext.js.map +1 -1
  3. package/dist/esm/capabilities/_internal/checkCapabilityAccess.js +47 -0
  4. package/dist/esm/capabilities/_internal/checkCapabilityAccess.js.map +1 -0
  5. package/dist/esm/capabilities/_internal/index.js +2 -0
  6. package/dist/esm/capabilities/_internal/index.js.map +1 -0
  7. package/dist/esm/capabilities/checkCapability.js +46 -0
  8. package/dist/esm/capabilities/checkCapability.js.map +1 -0
  9. package/dist/esm/capabilities/getWorkspaceCapabilities.js +38 -0
  10. package/dist/esm/capabilities/getWorkspaceCapabilities.js.map +1 -0
  11. package/dist/esm/capabilities/index.js +5 -0
  12. package/dist/esm/capabilities/index.js.map +1 -0
  13. package/dist/esm/capabilities/processEntityCapabilities.js +25 -0
  14. package/dist/esm/capabilities/processEntityCapabilities.js.map +1 -0
  15. package/dist/esm/capabilities/types.js +22 -0
  16. package/dist/esm/capabilities/types.js.map +1 -0
  17. package/dist/esm/core/HubItemEntity.js +8 -0
  18. package/dist/esm/core/HubItemEntity.js.map +1 -1
  19. package/dist/esm/{permissions → core}/types/IAccessResponse.js +0 -0
  20. package/dist/esm/core/types/IAccessResponse.js.map +1 -0
  21. package/dist/esm/index.js +1 -0
  22. package/dist/esm/index.js.map +1 -1
  23. package/dist/esm/initiatives/HubInitiative.js.map +1 -1
  24. package/dist/esm/initiatives/HubInitiatives.js +2 -36
  25. package/dist/esm/initiatives/HubInitiatives.js.map +1 -1
  26. package/dist/esm/initiatives/_internal/InitiativeBusinessRules.js +79 -0
  27. package/dist/esm/initiatives/_internal/InitiativeBusinessRules.js.map +1 -0
  28. package/dist/esm/initiatives/_internal/computeProps.js +31 -0
  29. package/dist/esm/initiatives/_internal/computeProps.js.map +1 -0
  30. package/dist/esm/initiatives/_internal/getPropertyMap.js +22 -0
  31. package/dist/esm/initiatives/_internal/getPropertyMap.js.map +1 -0
  32. package/dist/esm/permissions/HubPermissionPolicies.js +57 -2
  33. package/dist/esm/permissions/HubPermissionPolicies.js.map +1 -1
  34. package/dist/esm/permissions/_internal/checkAlphaGating.js +27 -0
  35. package/dist/esm/permissions/_internal/checkAlphaGating.js.map +1 -0
  36. package/dist/esm/permissions/_internal/checkAssertion.js +190 -0
  37. package/dist/esm/permissions/_internal/checkAssertion.js.map +1 -0
  38. package/dist/esm/permissions/_internal/checkAssertions.js +20 -0
  39. package/dist/esm/permissions/_internal/checkAssertions.js.map +1 -0
  40. package/dist/esm/permissions/_internal/checkAuthentication.js +15 -11
  41. package/dist/esm/permissions/_internal/checkAuthentication.js.map +1 -1
  42. package/dist/esm/permissions/_internal/checkEdit.js +6 -3
  43. package/dist/esm/permissions/_internal/checkEdit.js.map +1 -1
  44. package/dist/esm/permissions/_internal/checkEntityPolicy.js +14 -2
  45. package/dist/esm/permissions/_internal/checkEntityPolicy.js.map +1 -1
  46. package/dist/esm/permissions/_internal/checkLicense.js +21 -15
  47. package/dist/esm/permissions/_internal/checkLicense.js.map +1 -1
  48. package/dist/esm/permissions/_internal/checkOwner.js.map +1 -1
  49. package/dist/esm/permissions/_internal/checkPrivileges.js +19 -15
  50. package/dist/esm/permissions/_internal/checkPrivileges.js.map +1 -1
  51. package/dist/esm/permissions/_internal/getPolicyResponseCode.js +34 -16
  52. package/dist/esm/permissions/_internal/getPolicyResponseCode.js.map +1 -1
  53. package/dist/esm/permissions/checkPermission.js +6 -4
  54. package/dist/esm/permissions/checkPermission.js.map +1 -1
  55. package/dist/esm/permissions/types/IPermissionAccessResponse.js +1 -0
  56. package/dist/esm/permissions/types/IPermissionAccessResponse.js.map +1 -0
  57. package/dist/esm/permissions/types/Permission.js +8 -10
  58. package/dist/esm/permissions/types/Permission.js.map +1 -1
  59. package/dist/esm/permissions/types/index.js +1 -1
  60. package/dist/esm/permissions/types/index.js.map +1 -1
  61. package/dist/esm/projects/HubProject.js.map +1 -1
  62. package/dist/esm/projects/_internal/ProjectBusinessRules.js +79 -0
  63. package/dist/esm/projects/_internal/ProjectBusinessRules.js.map +1 -0
  64. package/dist/esm/projects/{_internal.js → _internal/computeProps.js} +7 -19
  65. package/dist/esm/projects/_internal/computeProps.js.map +1 -0
  66. package/dist/esm/projects/_internal/getPropertyMap.js +22 -0
  67. package/dist/esm/projects/_internal/getPropertyMap.js.map +1 -0
  68. package/dist/esm/projects/defaults.js +1 -0
  69. package/dist/esm/projects/defaults.js.map +1 -1
  70. package/dist/esm/projects/edit.js +2 -1
  71. package/dist/esm/projects/edit.js.map +1 -1
  72. package/dist/esm/projects/fetch.js +2 -1
  73. package/dist/esm/projects/fetch.js.map +1 -1
  74. package/dist/esm/sites/HubSites.js +16 -84
  75. package/dist/esm/sites/HubSites.js.map +1 -1
  76. package/dist/esm/sites/_internal/SiteBusinessRules.js +77 -0
  77. package/dist/esm/sites/_internal/SiteBusinessRules.js.map +1 -0
  78. package/dist/esm/sites/_internal/applyPermissionMigration.js +52 -0
  79. package/dist/esm/sites/_internal/applyPermissionMigration.js.map +1 -0
  80. package/dist/esm/sites/_internal/computeProps.js +32 -0
  81. package/dist/esm/sites/_internal/computeProps.js.map +1 -0
  82. package/dist/esm/sites/_internal/getPropertyMap.js +59 -0
  83. package/dist/esm/sites/_internal/getPropertyMap.js.map +1 -0
  84. package/dist/node/ArcGISContext.js +14 -0
  85. package/dist/node/ArcGISContext.js.map +1 -1
  86. package/dist/node/capabilities/_internal/checkCapabilityAccess.js +51 -0
  87. package/dist/node/capabilities/_internal/checkCapabilityAccess.js.map +1 -0
  88. package/dist/node/capabilities/_internal/index.js +5 -0
  89. package/dist/node/capabilities/_internal/index.js.map +1 -0
  90. package/dist/node/capabilities/checkCapability.js +50 -0
  91. package/dist/node/capabilities/checkCapability.js.map +1 -0
  92. package/dist/node/capabilities/getWorkspaceCapabilities.js +42 -0
  93. package/dist/node/capabilities/getWorkspaceCapabilities.js.map +1 -0
  94. package/dist/node/capabilities/index.js +8 -0
  95. package/dist/node/capabilities/index.js.map +1 -0
  96. package/dist/node/capabilities/processEntityCapabilities.js +29 -0
  97. package/dist/node/capabilities/processEntityCapabilities.js.map +1 -0
  98. package/dist/node/capabilities/types.js +26 -0
  99. package/dist/node/capabilities/types.js.map +1 -0
  100. package/dist/node/core/HubItemEntity.js +8 -0
  101. package/dist/node/core/HubItemEntity.js.map +1 -1
  102. package/dist/node/{permissions → core}/types/IAccessResponse.js +0 -0
  103. package/dist/node/core/types/IAccessResponse.js.map +1 -0
  104. package/dist/node/index.js +1 -0
  105. package/dist/node/index.js.map +1 -1
  106. package/dist/node/initiatives/HubInitiative.js.map +1 -1
  107. package/dist/node/initiatives/HubInitiatives.js +8 -42
  108. package/dist/node/initiatives/HubInitiatives.js.map +1 -1
  109. package/dist/node/initiatives/_internal/InitiativeBusinessRules.js +82 -0
  110. package/dist/node/initiatives/_internal/InitiativeBusinessRules.js.map +1 -0
  111. package/dist/node/initiatives/_internal/computeProps.js +35 -0
  112. package/dist/node/initiatives/_internal/computeProps.js.map +1 -0
  113. package/dist/node/initiatives/_internal/getPropertyMap.js +26 -0
  114. package/dist/node/initiatives/_internal/getPropertyMap.js.map +1 -0
  115. package/dist/node/permissions/HubPermissionPolicies.js +59 -4
  116. package/dist/node/permissions/HubPermissionPolicies.js.map +1 -1
  117. package/dist/node/permissions/_internal/checkAlphaGating.js +31 -0
  118. package/dist/node/permissions/_internal/checkAlphaGating.js.map +1 -0
  119. package/dist/node/permissions/_internal/checkAssertion.js +194 -0
  120. package/dist/node/permissions/_internal/checkAssertion.js.map +1 -0
  121. package/dist/node/permissions/_internal/checkAssertions.js +24 -0
  122. package/dist/node/permissions/_internal/checkAssertions.js.map +1 -0
  123. package/dist/node/permissions/_internal/checkAuthentication.js +15 -11
  124. package/dist/node/permissions/_internal/checkAuthentication.js.map +1 -1
  125. package/dist/node/permissions/_internal/checkEdit.js +6 -3
  126. package/dist/node/permissions/_internal/checkEdit.js.map +1 -1
  127. package/dist/node/permissions/_internal/checkEntityPolicy.js +14 -2
  128. package/dist/node/permissions/_internal/checkEntityPolicy.js.map +1 -1
  129. package/dist/node/permissions/_internal/checkLicense.js +21 -15
  130. package/dist/node/permissions/_internal/checkLicense.js.map +1 -1
  131. package/dist/node/permissions/_internal/checkOwner.js.map +1 -1
  132. package/dist/node/permissions/_internal/checkPrivileges.js +19 -15
  133. package/dist/node/permissions/_internal/checkPrivileges.js.map +1 -1
  134. package/dist/node/permissions/_internal/getPolicyResponseCode.js +34 -16
  135. package/dist/node/permissions/_internal/getPolicyResponseCode.js.map +1 -1
  136. package/dist/node/permissions/checkPermission.js +6 -4
  137. package/dist/node/permissions/checkPermission.js.map +1 -1
  138. package/dist/node/permissions/types/IPermissionAccessResponse.js +3 -0
  139. package/dist/node/permissions/types/IPermissionAccessResponse.js.map +1 -0
  140. package/dist/node/permissions/types/Permission.js +8 -10
  141. package/dist/node/permissions/types/Permission.js.map +1 -1
  142. package/dist/node/permissions/types/index.js +1 -1
  143. package/dist/node/permissions/types/index.js.map +1 -1
  144. package/dist/node/projects/HubProject.js.map +1 -1
  145. package/dist/node/projects/_internal/ProjectBusinessRules.js +82 -0
  146. package/dist/node/projects/_internal/ProjectBusinessRules.js.map +1 -0
  147. package/dist/node/projects/{_internal.js → _internal/computeProps.js} +8 -21
  148. package/dist/node/projects/_internal/computeProps.js.map +1 -0
  149. package/dist/node/projects/_internal/getPropertyMap.js +26 -0
  150. package/dist/node/projects/_internal/getPropertyMap.js.map +1 -0
  151. package/dist/node/projects/defaults.js +1 -0
  152. package/dist/node/projects/defaults.js.map +1 -1
  153. package/dist/node/projects/edit.js +6 -5
  154. package/dist/node/projects/edit.js.map +1 -1
  155. package/dist/node/projects/fetch.js +4 -3
  156. package/dist/node/projects/fetch.js.map +1 -1
  157. package/dist/node/sites/HubSites.js +16 -84
  158. package/dist/node/sites/HubSites.js.map +1 -1
  159. package/dist/node/sites/_internal/SiteBusinessRules.js +80 -0
  160. package/dist/node/sites/_internal/SiteBusinessRules.js.map +1 -0
  161. package/dist/node/sites/_internal/applyPermissionMigration.js +56 -0
  162. package/dist/node/sites/_internal/applyPermissionMigration.js.map +1 -0
  163. package/dist/node/sites/_internal/computeProps.js +36 -0
  164. package/dist/node/sites/_internal/computeProps.js.map +1 -0
  165. package/dist/node/sites/_internal/getPropertyMap.js +63 -0
  166. package/dist/node/sites/_internal/getPropertyMap.js.map +1 -0
  167. package/dist/types/ArcGISContext.d.ts +10 -0
  168. package/dist/types/capabilities/_internal/checkCapabilityAccess.d.ts +10 -0
  169. package/dist/types/capabilities/_internal/index.d.ts +1 -0
  170. package/dist/types/capabilities/checkCapability.d.ts +10 -0
  171. package/dist/types/capabilities/getWorkspaceCapabilities.d.ts +15 -0
  172. package/dist/types/capabilities/index.d.ts +4 -0
  173. package/dist/types/capabilities/processEntityCapabilities.d.ts +8 -0
  174. package/dist/types/capabilities/types.d.ts +57 -0
  175. package/dist/types/content/_internal.d.ts +2 -1
  176. package/dist/types/core/HubItemEntity.d.ts +10 -4
  177. package/dist/types/core/behaviors/IWithPermissionBehavior.d.ts +10 -2
  178. package/dist/types/core/traits/IWithPermissions.d.ts +2 -0
  179. package/dist/types/core/types/IAccessResponse.d.ts +20 -0
  180. package/dist/types/core/types/IHubSite.d.ts +4 -4
  181. package/dist/types/index.d.ts +1 -0
  182. package/dist/types/initiatives/HubInitiative.d.ts +2 -2
  183. package/dist/types/initiatives/_internal/InitiativeBusinessRules.d.ts +26 -0
  184. package/dist/types/initiatives/_internal/computeProps.d.ts +12 -0
  185. package/dist/types/initiatives/_internal/getPropertyMap.d.ts +8 -0
  186. package/dist/types/permissions/_internal/checkAlphaGating.d.ts +10 -0
  187. package/dist/types/permissions/_internal/checkAssertion.d.ts +11 -0
  188. package/dist/types/permissions/_internal/checkAssertions.d.ts +10 -0
  189. package/dist/types/permissions/_internal/checkAuthentication.d.ts +1 -2
  190. package/dist/types/permissions/_internal/checkEdit.d.ts +1 -2
  191. package/dist/types/permissions/_internal/checkLicense.d.ts +1 -1
  192. package/dist/types/permissions/_internal/checkOwner.d.ts +1 -2
  193. package/dist/types/permissions/_internal/checkPrivileges.d.ts +1 -2
  194. package/dist/types/permissions/checkPermission.d.ts +2 -3
  195. package/dist/types/permissions/types/IEntityPermissionPolicy.d.ts +1 -1
  196. package/dist/types/permissions/types/IPermissionAccessResponse.d.ts +18 -0
  197. package/dist/types/permissions/types/IPermissionPolicy.d.ts +18 -9
  198. package/dist/types/permissions/types/Permission.d.ts +3 -3
  199. package/dist/types/permissions/types/PolicyResponse.d.ts +1 -1
  200. package/dist/types/permissions/types/index.d.ts +1 -1
  201. package/dist/types/projects/HubProject.d.ts +2 -2
  202. package/dist/types/projects/_internal/ProjectBusinessRules.d.ts +26 -0
  203. package/dist/types/projects/{_internal.d.ts → _internal/computeProps.d.ts} +2 -10
  204. package/dist/types/projects/_internal/getPropertyMap.d.ts +8 -0
  205. package/dist/types/sites/HubSites.d.ts +1 -1
  206. package/dist/types/sites/_internal/SiteBusinessRules.d.ts +25 -0
  207. package/dist/types/sites/_internal/applyPermissionMigration.d.ts +7 -0
  208. package/dist/types/sites/_internal/computeProps.d.ts +12 -0
  209. package/dist/types/sites/_internal/getPropertyMap.d.ts +10 -0
  210. package/package.json +1 -1
  211. package/dist/esm/permissions/types/IAccessResponse.js.map +0 -1
  212. package/dist/esm/projects/_internal/ProjectPermissionPolicies.js +0 -35
  213. package/dist/esm/projects/_internal/ProjectPermissionPolicies.js.map +0 -1
  214. package/dist/esm/projects/_internal.js.map +0 -1
  215. package/dist/esm/sites/_internal/SitesPermissionPolicies.js +0 -34
  216. package/dist/esm/sites/_internal/SitesPermissionPolicies.js.map +0 -1
  217. package/dist/node/permissions/types/IAccessResponse.js.map +0 -1
  218. package/dist/node/projects/_internal/ProjectPermissionPolicies.js +0 -38
  219. package/dist/node/projects/_internal/ProjectPermissionPolicies.js.map +0 -1
  220. package/dist/node/projects/_internal.js.map +0 -1
  221. package/dist/node/sites/_internal/SitesPermissionPolicies.js +0 -37
  222. package/dist/node/sites/_internal/SitesPermissionPolicies.js.map +0 -1
  223. package/dist/types/permissions/types/IAccessResponse.d.ts +0 -29
  224. package/dist/types/projects/_internal/ProjectPermissionPolicies.d.ts +0 -7
  225. package/dist/types/sites/_internal/SitesPermissionPolicies.d.ts +0 -6
@@ -1,11 +1,66 @@
1
- import { ProjectPermissionPolicies } from "../projects/_internal/ProjectPermissionPolicies";
2
- import { SitesPermissionPolicies } from "../sites/_internal/SitesPermissionPolicies";
1
+ import { InitiativePermissionPolicies } from "../initiatives/_internal/InitiativeBusinessRules";
2
+ import { ProjectPermissionPolicies } from "../projects/_internal/ProjectBusinessRules";
3
+ import { SitesPermissionPolicies } from "../sites/_internal/SiteBusinessRules";
4
+ // Examples of possible Permission Policies
5
+ // const DiscussionPermissionPolicies: IPermissionPolicy[] = [
6
+ // {
7
+ // permission: "discussions:channel:create",
8
+ // authenticated: true,
9
+ // subsystems: ["discussions"],
10
+ // licenses: ["hub-basic", "hub-premium"],
11
+ // },
12
+ // {
13
+ // permission: "discussions:channel:createprivate",
14
+ // subsystems: ["discussions"],
15
+ // authenticated: true,
16
+ // licenses: ["hub-basic", "hub-premium"],
17
+ // assertions: [
18
+ // {
19
+ // property: "entity:group.typekeywords",
20
+ // assertion: "without",
21
+ // value: "cannotDiscuss",
22
+ // },
23
+ // {
24
+ // property: "context:currentUser",
25
+ // assertion: "is-group-admin",
26
+ // value: "entity:group.id",
27
+ // },
28
+ // ],
29
+ // },
30
+ // {
31
+ // permission: "discussions:channel:create",
32
+ // subsystems: ["discussions"],
33
+ // authenticated: true,
34
+ // licenses: ["hub-basic", "hub-premium"],
35
+ // assertions: [
36
+ // {
37
+ // property: "entity:typeKeywords",
38
+ // assertion: "without",
39
+ // value: "cannotDiscuss",
40
+ // },
41
+ // ],
42
+ // },
43
+ // {
44
+ // permission: "discussions:post:create",
45
+ // subsystems: ["discussions"],
46
+ // authenticated: true,
47
+ // licenses: ["hub-basic", "hub-premium"],
48
+ // assertions: [
49
+ // {
50
+ // property: "entity:typeKeywords",
51
+ // assertion: "without",
52
+ // value: "cannotDiscuss",
53
+ // },
54
+ // ],
55
+ // },
56
+ // ];
3
57
  /**
4
58
  * All the permission policies for the Hub
5
59
  */
6
60
  export const HubPermissionsPolicies = [
7
61
  ...SitesPermissionPolicies,
8
62
  ...ProjectPermissionPolicies,
63
+ ...InitiativePermissionPolicies,
9
64
  ];
10
65
  /**
11
66
  * Get the policies defined for a specific permission
@@ -1 +1 @@
1
- {"version":3,"file":"HubPermissionPolicies.js","sourceRoot":"","sources":["../../../src/permissions/HubPermissionPolicies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AAC5F,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAIrF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAwB;IACzD,GAAG,uBAAuB;IAC1B,GAAG,yBAAyB;CAC7B,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAsB;IACxD,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"HubPermissionPolicies.js","sourceRoot":"","sources":["../../../src/permissions/HubPermissionPolicies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,kDAAkD,CAAC;AAChG,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAI/E,2CAA2C;AAC3C,8DAA8D;AAC9D,MAAM;AACN,gDAAgD;AAChD,2BAA2B;AAC3B,mCAAmC;AACnC,8CAA8C;AAC9C,OAAO;AACP,MAAM;AACN,uDAAuD;AACvD,mCAAmC;AACnC,2BAA2B;AAC3B,8CAA8C;AAC9C,oBAAoB;AACpB,UAAU;AACV,iDAAiD;AACjD,gCAAgC;AAChC,kCAAkC;AAClC,WAAW;AACX,UAAU;AACV,2CAA2C;AAC3C,uCAAuC;AACvC,oCAAoC;AACpC,WAAW;AACX,SAAS;AACT,OAAO;AACP,MAAM;AACN,gDAAgD;AAChD,mCAAmC;AACnC,2BAA2B;AAC3B,8CAA8C;AAC9C,oBAAoB;AACpB,UAAU;AACV,2CAA2C;AAC3C,gCAAgC;AAChC,kCAAkC;AAClC,WAAW;AACX,SAAS;AACT,OAAO;AACP,MAAM;AACN,6CAA6C;AAC7C,mCAAmC;AACnC,2BAA2B;AAC3B,8CAA8C;AAC9C,oBAAoB;AACpB,UAAU;AACV,2CAA2C;AAC3C,gCAAgC;AAChC,kCAAkC;AAClC,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AAEL;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAwB;IACzD,GAAG,uBAAuB;IAC1B,GAAG,yBAAyB;IAC5B,GAAG,4BAA4B;CAChC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAsB;IACxD,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;AACzE,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { getPolicyResponseCode } from "./getPolicyResponseCode";
2
+ /**
3
+ * Validate entityOwner policy
4
+ * @param policy
5
+ * @param context
6
+ * @param entity
7
+ * @returns
8
+ */
9
+ export function checkAlphaGating(policy, context, entity) {
10
+ const checks = [];
11
+ // Only return a check if the policy is defined
12
+ if (policy.alpha) {
13
+ const result = context.isAlphaOrg
14
+ ? "granted"
15
+ : "not-alpha-org";
16
+ // create the check
17
+ const check = {
18
+ name: `user in alpha org`,
19
+ value: context.hubLicense,
20
+ code: getPolicyResponseCode(result),
21
+ response: result,
22
+ };
23
+ checks.push(check);
24
+ }
25
+ return checks;
26
+ }
27
+ //# sourceMappingURL=checkAlphaGating.js.map
@@ -0,0 +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"}
@@ -0,0 +1,190 @@
1
+ import { getProp } from "../../objects";
2
+ import { mapBy } from "../../utils";
3
+ import { getPolicyResponseCode } from "./getPolicyResponseCode";
4
+ /**
5
+ * Check a specific EntityAssertion
6
+ * Exported purely for testing. Not exported from the package.
7
+ * @param assertion
8
+ * @param entity
9
+ * @param context
10
+ * @returns
11
+ */
12
+ export function checkAssertion(assertion, entity, context) {
13
+ let response = "granted";
14
+ // construct a hash to look up properties in
15
+ const lookupHash = { entity, context };
16
+ // get the property value
17
+ const propertyLookup = parseProperty(assertion.property);
18
+ const propValue = getProp(lookupHash, propertyLookup.path);
19
+ // If prop is undefined, then the assertion fails
20
+ if (propValue === undefined) {
21
+ response = "assertion-property-not-found";
22
+ }
23
+ let val = assertion.value;
24
+ if (typeof val === "string" && val.indexOf(":") > -1) {
25
+ const valueLookup = parseProperty(assertion.value);
26
+ val = getProp(lookupHash, valueLookup.path);
27
+ if (val === undefined) {
28
+ response = "assertion-property-not-found";
29
+ }
30
+ }
31
+ // if we have the two values, we can make the assertion
32
+ if (propValue !== undefined && val !== undefined) {
33
+ // TODO: Should these fns return IPolicyCheck? or just the response?
34
+ // TODO: Should these fns inspect the type internally? or switch case here?
35
+ switch (assertion.type) {
36
+ case "eq":
37
+ case "neq":
38
+ response = equalityAssertions(assertion, propValue, val);
39
+ break;
40
+ case "contains":
41
+ case "without":
42
+ response = arrayAssertions(assertion, propValue, val);
43
+ break;
44
+ case "included-in":
45
+ response = includeAssertions(assertion, propValue, val);
46
+ break;
47
+ case "gt":
48
+ case "lt":
49
+ response = rangeAssertions(assertion, propValue, val);
50
+ break;
51
+ case "is-group-admin":
52
+ case "is-group-member":
53
+ case "is-group-owner":
54
+ response = groupAssertions(assertion, propValue, val, context);
55
+ break;
56
+ }
57
+ }
58
+ const result = {
59
+ name: `assertion: ${assertion.property} ${assertion.type} ${assertion.value}`,
60
+ value: propValue,
61
+ code: getPolicyResponseCode(response),
62
+ response,
63
+ };
64
+ return result;
65
+ }
66
+ function groupAssertions(assertion, propValue, val, context) {
67
+ let response = "granted";
68
+ const userGroups = context.currentUser.groups || [];
69
+ // Default the groups to all groups the user is a member of
70
+ let groups = mapBy("id", userGroups);
71
+ let failResponse = "user-not-group-member";
72
+ if (assertion.type === "is-group-member") {
73
+ failResponse = "user-not-group-member";
74
+ // no need to filter - this is anyone who's a member
75
+ groups = filterByMembershipType(userGroups, ["admin", "owner", "member"]);
76
+ }
77
+ if (assertion.type === "is-group-admin") {
78
+ failResponse = "user-not-group-manager";
79
+ groups = filterByMembershipType(userGroups, ["admin", "owner"]);
80
+ }
81
+ if (assertion.type === "is-group-owner") {
82
+ failResponse = "user-not-group-owner";
83
+ groups = filterByMembershipType(userGroups, ["owner"]);
84
+ }
85
+ // now, see if the val is in the groups array
86
+ if (!groups.includes(val)) {
87
+ // send a specific response
88
+ response = failResponse;
89
+ }
90
+ return response;
91
+ }
92
+ function filterByMembershipType(groups, types) {
93
+ return groups.reduce((acc, grp) => {
94
+ if (types.includes(grp.userMembership.memberType)) {
95
+ acc.push(grp.id);
96
+ }
97
+ return acc;
98
+ }, []);
99
+ }
100
+ /**
101
+ * Is the propValue included in the val array?
102
+ * @param assertion
103
+ * @param propValue
104
+ * @param val
105
+ * @returns
106
+ */
107
+ function includeAssertions(assertion, propValue, val) {
108
+ let response = "granted";
109
+ if (!Array.isArray(val)) {
110
+ response = "property-not-array";
111
+ }
112
+ else {
113
+ const arrayVal = val;
114
+ if (!arrayVal.includes(propValue)) {
115
+ response = "array-missing-required-value";
116
+ }
117
+ }
118
+ return response;
119
+ }
120
+ /**
121
+ * Is the propValue "eq" or "neq" to the val?
122
+ * @param assertion
123
+ * @param propValue
124
+ * @param val
125
+ * @returns
126
+ */
127
+ function equalityAssertions(assertion, propValue, val) {
128
+ let response = "granted";
129
+ if (assertion.type === "eq" && propValue !== val) {
130
+ response = "assertion-failed";
131
+ }
132
+ else if (assertion.type === "neq" && propValue === val) {
133
+ response = "assertion-failed";
134
+ }
135
+ return response;
136
+ }
137
+ /**
138
+ * Is the propValue "gt" or "lt" to the val?
139
+ * @param assertion
140
+ * @param propValue
141
+ * @param val
142
+ * @returns
143
+ */
144
+ function rangeAssertions(assertion, propValue, val) {
145
+ let response = "granted";
146
+ if (typeof propValue !== "number" || typeof val !== "number") {
147
+ response = "assertion-requires-numeric-values";
148
+ }
149
+ if (assertion.type === "gt" && propValue < val) {
150
+ response = "assertion-failed";
151
+ }
152
+ else if (assertion.type === "lt" && propValue > val) {
153
+ response = "assertion-failed";
154
+ }
155
+ return response;
156
+ }
157
+ /**
158
+ * Does the propValue array "contain" or "without" the val?
159
+ * @param assertion
160
+ * @param propValue
161
+ * @param val
162
+ * @returns
163
+ */
164
+ function arrayAssertions(assertion, propValue, val) {
165
+ let response = "granted";
166
+ if (!Array.isArray(propValue)) {
167
+ response = "property-not-array";
168
+ }
169
+ else {
170
+ const arrayProp = propValue;
171
+ const arrayContainsValue = arrayProp.includes(val);
172
+ if (assertion.type === "contains" && !arrayContainsValue) {
173
+ response = "array-missing-required-value";
174
+ }
175
+ if (assertion.type === "without" && arrayContainsValue) {
176
+ response = "array-contains-invalid-value";
177
+ }
178
+ }
179
+ return response;
180
+ }
181
+ function parseProperty(property) {
182
+ let root = "entity";
183
+ let path = `entity.${property}`;
184
+ if (property.indexOf(":") > -1) {
185
+ root = property.split(":")[0];
186
+ path = `${root}.${property.split(":")[1]}`;
187
+ }
188
+ return { root, path };
189
+ }
190
+ //# sourceMappingURL=checkAssertion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkAssertion.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkAssertion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { checkAssertion } from "./checkAssertion";
2
+ /**
3
+ * Validate entityOwner policy
4
+ * @param policy
5
+ * @param context
6
+ * @param entity
7
+ * @returns
8
+ */
9
+ export function checkAssertions(policy, context, entity) {
10
+ let checks = [];
11
+ // Only return a check if the policy is defined
12
+ if (policy.assertions) {
13
+ // iterate over the assertions, creating a check for each entry
14
+ checks = policy.assertions.map((assertion) => {
15
+ return checkAssertion(assertion, entity, context);
16
+ });
17
+ }
18
+ return checks;
19
+ }
20
+ //# sourceMappingURL=checkAssertions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkAssertions.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkAssertions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAyB,EACzB,OAAuB,EACvB,MAA4B;IAE5B,IAAI,MAAM,GAAG,EAAoB,CAAC;IAClC,+CAA+C;IAC/C,IAAI,MAAM,CAAC,UAAU,EAAE;QACrB,+DAA+D;QAC/D,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAA2B,EAAE,EAAE;YAC7D,OAAO,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -7,18 +7,22 @@ import { getPolicyResponseCode } from "./getPolicyResponseCode";
7
7
  * @returns
8
8
  */
9
9
  export function checkAuthentication(policy, context, entity) {
10
- let response = "granted";
10
+ const checks = [];
11
11
  // Only return a check if the policy is defined
12
- if (policy.authenticated && !context.isAuthenticated) {
13
- response = "not-authenticated";
12
+ if (policy.hasOwnProperty("authenticated")) {
13
+ let response = "granted";
14
+ if (policy.authenticated && !context.isAuthenticated) {
15
+ response = "not-authenticated";
16
+ }
17
+ // create the check
18
+ const check = {
19
+ name: "authentication",
20
+ value: `required: ${policy.authenticated}`,
21
+ code: getPolicyResponseCode(response),
22
+ response,
23
+ };
24
+ checks.push(check);
14
25
  }
15
- // create the check
16
- const check = {
17
- name: "authentication",
18
- value: `required: ${policy.authenticated}`,
19
- code: getPolicyResponseCode(response),
20
- response,
21
- };
22
- return [check];
26
+ return checks;
23
27
  }
24
28
  //# sourceMappingURL=checkAuthentication.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkAuthentication.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkAuthentication.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAyB,EACzB,OAAuB,EACvB,MAAkB;IAElB,IAAI,QAAQ,GAAmB,SAAS,CAAC;IAEzC,+CAA+C;IAC/C,IAAI,MAAM,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;QACpD,QAAQ,GAAG,mBAAmB,CAAC;KAChC;IAED,mBAAmB;IACnB,MAAM,KAAK,GAAiB;QAC1B,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,aAAa,MAAM,CAAC,aAAa,EAAE;QAC1C,IAAI,EAAE,qBAAqB,CAAC,QAAQ,CAAC;QACrC,QAAQ;KACT,CAAC;IAEF,OAAO,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"checkAuthentication.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkAuthentication.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAyB,EACzB,OAAuB,EACvB,MAA4B;IAE5B,MAAM,MAAM,GAAG,EAAoB,CAAC;IAEpC,+CAA+C;IAC/C,IAAI,MAAM,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE;QAC1C,IAAI,QAAQ,GAAmB,SAAS,CAAC;QAEzC,IAAI,MAAM,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YACpD,QAAQ,GAAG,mBAAmB,CAAC;SAChC;QAED,mBAAmB;QACnB,MAAM,KAAK,GAAiB;YAC1B,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,aAAa,MAAM,CAAC,aAAa,EAAE;YAC1C,IAAI,EAAE,qBAAqB,CAAC,QAAQ,CAAC;YACrC,QAAQ;SACT,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -9,17 +9,20 @@ import { getPolicyResponseCode } from "./getPolicyResponseCode";
9
9
  */
10
10
  export function checkEdit(policy, context, entity) {
11
11
  const checks = [];
12
- let response = "granted";
13
12
  // Only return a check if the policy is defined
14
- if (policy.entityEdit) {
13
+ if (policy.hasOwnProperty("entityEdit")) {
14
+ let response = "granted";
15
15
  if (!entity) {
16
16
  // fail b/c no entity
17
17
  response = "entity-required";
18
18
  }
19
19
  else {
20
- if (!entity.canEdit) {
20
+ if (policy.entityEdit && !entity.canEdit) {
21
21
  response = "no-edit-access";
22
22
  }
23
+ else if (!policy.entityEdit && entity.canEdit) {
24
+ response = "edit-access";
25
+ }
23
26
  }
24
27
  // create the check
25
28
  const check = {
@@ -1 +1 @@
1
- {"version":3,"file":"checkEdit.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkEdit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CACvB,MAAyB,EACzB,OAAuB,EACvB,MAAkB;IAElB,MAAM,MAAM,GAAG,EAAoB,CAAC;IACpC,IAAI,QAAQ,GAAmB,SAAS,CAAC;IAEzC,+CAA+C;IAC/C,IAAI,MAAM,CAAC,UAAU,EAAE;QACrB,IAAI,CAAC,MAAM,EAAE;YACX,qBAAqB;YACrB,QAAQ,GAAG,iBAAiB,CAAC;SAC9B;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;gBACnB,QAAQ,GAAG,gBAAgB,CAAC;aAC7B;SACF;QAED,mBAAmB;QACnB,MAAM,KAAK,GAAiB;YAC1B,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,mBAAmB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE;YACpE,IAAI,EAAE,qBAAqB,CAAC,QAAQ,CAAC;YACrC,QAAQ;SACT,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"checkEdit.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkEdit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CACvB,MAAyB,EACzB,OAAuB,EACvB,MAA4B;IAE5B,MAAM,MAAM,GAAG,EAAoB,CAAC;IAEpC,+CAA+C;IAC/C,IAAI,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;QACvC,IAAI,QAAQ,GAAmB,SAAS,CAAC;QACzC,IAAI,CAAC,MAAM,EAAE;YACX,qBAAqB;YACrB,QAAQ,GAAG,iBAAiB,CAAC;SAC9B;aAAM;YACL,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;gBACxC,QAAQ,GAAG,gBAAgB,CAAC;aAC7B;iBAAM,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO,EAAE;gBAC/C,QAAQ,GAAG,aAAa,CAAC;aAC1B;SACF;QAED,mBAAmB;QACnB,MAAM,KAAK,GAAiB;YAC1B,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,mBAAmB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE;YACpE,IAAI,EAAE,qBAAqB,CAAC,QAAQ,CAAC;YACrC,QAAQ;SACT,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -7,7 +7,7 @@ import { getPolicyResponseCode } from "./getPolicyResponseCode";
7
7
  * @returns
8
8
  */
9
9
  export function checkEntityPolicy(policy, context) {
10
- const user = context.currentUser;
10
+ const user = context.currentUser || { groups: [] };
11
11
  const userGroups = user.groups || [];
12
12
  let response = "not-granted";
13
13
  const type = policy.collaborationType;
@@ -38,13 +38,25 @@ export function checkEntityPolicy(policy, context) {
38
38
  }
39
39
  if (type === "group-admin") {
40
40
  const group = userGroups.find((g) => g.id === id);
41
- if (getProp(group, "userMembership.memberType") === "admin") {
41
+ const memberType = getProp(group, "userMembership.memberType");
42
+ if (["admin", "owner"].includes(memberType)) {
42
43
  response = "granted";
43
44
  }
44
45
  else {
45
46
  response = "not-group-admin";
46
47
  }
47
48
  }
49
+ if (type === "authenticated") {
50
+ if (context.isAuthenticated) {
51
+ response = "granted";
52
+ }
53
+ else {
54
+ response = "not-authenticated";
55
+ }
56
+ }
57
+ if (type === "anonymous") {
58
+ response = "granted";
59
+ }
48
60
  const check = {
49
61
  name: "entity:policy",
50
62
  value: `${policy.collaborationType}:${policy.collaborationId}`,
@@ -1 +1 @@
1
- {"version":3,"file":"checkEntityPolicy.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkEntityPolicy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAMxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE;;;;;GAKG;AAEH,MAAM,UAAU,iBAAiB,CAC/B,MAA+B,EAC/B,OAAuB;IAEvB,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IACjC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,IAAK,EAAe,CAAC;IACnD,IAAI,QAAQ,GAAmB,aAAa,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACtC,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC;IAElC,IAAI,IAAI,KAAK,MAAM,EAAE;QACnB,IAAI,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE;YACxB,QAAQ,GAAG,SAAS,CAAC;SACtB;aAAM;YACL,QAAQ,GAAG,aAAa,CAAC;SAC1B;KACF;IAED,IAAI,IAAI,KAAK,KAAK,EAAE;QAClB,IAAI,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE;YACrB,QAAQ,GAAG,SAAS,CAAC;SACtB;aAAM;YACL,QAAQ,GAAG,gBAAgB,CAAC;SAC7B;KACF;IAED,IAAI,IAAI,KAAK,OAAO,EAAE;QACpB,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;YAC/C,QAAQ,GAAG,SAAS,CAAC;SACtB;aAAM;YACL,QAAQ,GAAG,kBAAkB,CAAC;SAC/B;KACF;IAED,IAAI,IAAI,KAAK,aAAa,EAAE;QAC1B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1D,IAAI,OAAO,CAAC,KAAK,EAAE,2BAA2B,CAAC,KAAK,OAAO,EAAE;YAC3D,QAAQ,GAAG,SAAS,CAAC;SACtB;aAAM;YACL,QAAQ,GAAG,iBAAiB,CAAC;SAC9B;KACF;IAED,MAAM,KAAK,GAAiB;QAC1B,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,GAAG,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,eAAe,EAAE;QAC9D,QAAQ;QACR,IAAI,EAAE,qBAAqB,CAAC,QAAQ,CAAC;KACtC,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"checkEntityPolicy.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkEntityPolicy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAMxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAA+B,EAC/B,OAAuB;IAEvB,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,IAAK,EAAE,MAAM,EAAE,EAAE,EAAY,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,IAAK,EAAe,CAAC;IACnD,IAAI,QAAQ,GAAmB,aAAa,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACtC,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC;IAElC,IAAI,IAAI,KAAK,MAAM,EAAE;QACnB,IAAI,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE;YACxB,QAAQ,GAAG,SAAS,CAAC;SACtB;aAAM;YACL,QAAQ,GAAG,aAAa,CAAC;SAC1B;KACF;IAED,IAAI,IAAI,KAAK,KAAK,EAAE;QAClB,IAAI,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE;YACrB,QAAQ,GAAG,SAAS,CAAC;SACtB;aAAM;YACL,QAAQ,GAAG,gBAAgB,CAAC;SAC7B;KACF;IAED,IAAI,IAAI,KAAK,OAAO,EAAE;QACpB,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;YAC/C,QAAQ,GAAG,SAAS,CAAC;SACtB;aAAM;YACL,QAAQ,GAAG,kBAAkB,CAAC;SAC/B;KACF;IAED,IAAI,IAAI,KAAK,aAAa,EAAE;QAC1B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YAC3C,QAAQ,GAAG,SAAS,CAAC;SACtB;aAAM;YACL,QAAQ,GAAG,iBAAiB,CAAC;SAC9B;KACF;IAED,IAAI,IAAI,KAAK,eAAe,EAAE;QAC5B,IAAI,OAAO,CAAC,eAAe,EAAE;YAC3B,QAAQ,GAAG,SAAS,CAAC;SACtB;aAAM;YACL,QAAQ,GAAG,mBAAmB,CAAC;SAChC;KACF;IAED,IAAI,IAAI,KAAK,WAAW,EAAE;QACxB,QAAQ,GAAG,SAAS,CAAC;KACtB;IAED,MAAM,KAAK,GAAiB;QAC1B,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,GAAG,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,eAAe,EAAE;QAC9D,QAAQ;QACR,IAAI,EAAE,qBAAqB,CAAC,QAAQ,CAAC;KACtC,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -6,22 +6,28 @@ import { getPolicyResponseCode } from "./getPolicyResponseCode";
6
6
  * @param context
7
7
  * @returns
8
8
  */
9
- export function checkLicense(policy, context) {
10
- let result = "granted";
11
- if (!policy.licenses.includes(context.hubLicense)) {
12
- result = "not-available";
13
- // can we show an upgrade ux?
14
- if (policy.licenses[0] === "hub-premium" &&
15
- context.hubLicense === "hub-basic") {
16
- result = "not-licensed"; // implies it could be licensed
9
+ export function checkLicense(policy, context, entity) {
10
+ var _a;
11
+ const checks = [];
12
+ // Only return a check if the policy is defined
13
+ if ((_a = policy.licenses) === null || _a === void 0 ? void 0 : _a.length) {
14
+ let result = "granted";
15
+ if (!policy.licenses.includes(context.hubLicense)) {
16
+ result = "not-available";
17
+ // can we show an upgrade ux?
18
+ if (policy.licenses[0] === "hub-premium" &&
19
+ context.hubLicense === "hub-basic") {
20
+ result = "not-licensed"; // implies it could be licensed
21
+ }
17
22
  }
23
+ const check = {
24
+ name: `license in ${policy.licenses.join(", ")}`,
25
+ value: context.hubLicense,
26
+ code: getPolicyResponseCode(result),
27
+ response: result,
28
+ };
29
+ checks.push(check);
18
30
  }
19
- const check = {
20
- name: `license in ${policy.licenses.join(", ")}`,
21
- value: context.hubLicense,
22
- code: getPolicyResponseCode(result),
23
- response: result,
24
- };
25
- return [check];
31
+ return checks;
26
32
  }
27
33
  //# sourceMappingURL=checkLicense.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkLicense.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkLicense.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAyB,EACzB,OAAuB;IAEvB,IAAI,MAAM,GAAmB,SAAS,CAAC;IAEvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QACjD,MAAM,GAAG,eAAe,CAAC;QACzB,6BAA6B;QAC7B,IACE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,aAAa;YACpC,OAAO,CAAC,UAAU,KAAK,WAAW,EAClC;YACA,MAAM,GAAG,cAAc,CAAC,CAAC,+BAA+B;SACzD;KACF;IAED,MAAM,KAAK,GAAiB;QAC1B,IAAI,EAAE,cAAc,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAChD,KAAK,EAAE,OAAO,CAAC,UAAU;QACzB,IAAI,EAAE,qBAAqB,CAAC,MAAM,CAAC;QACnC,QAAQ,EAAE,MAAM;KACjB,CAAC;IAEF,OAAO,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"checkLicense.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkLicense.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAyB,EACzB,OAAuB,EACvB,MAA4B;;IAE5B,MAAM,MAAM,GAAG,EAAoB,CAAC;IACpC,+CAA+C;IAC/C,UAAI,MAAM,CAAC,QAAQ,0CAAE,MAAM,EAAE;QAC3B,IAAI,MAAM,GAAmB,SAAS,CAAC;QAEvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACjD,MAAM,GAAG,eAAe,CAAC;YACzB,6BAA6B;YAC7B,IACE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,aAAa;gBACpC,OAAO,CAAC,UAAU,KAAK,WAAW,EAClC;gBACA,MAAM,GAAG,cAAc,CAAC,CAAC,+BAA+B;aACzD;SACF;QAED,MAAM,KAAK,GAAiB;YAC1B,IAAI,EAAE,cAAc,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAChD,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;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"checkOwner.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkOwner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CACxB,MAAyB,EACzB,OAAuB,EACvB,MAAkB;IAElB,MAAM,MAAM,GAAG,EAAoB,CAAC;IACpC,+CAA+C;IAC/C,IAAI,MAAM,CAAC,WAAW,EAAE;QACtB,IAAI,QAAQ,GAAmB,SAAS,CAAC;QACzC,IAAI,IAAI,GAAG,uBAAuB,CAAC;QACnC,IAAI,CAAC,MAAM,EAAE;YACX,qBAAqB;YACrB,QAAQ,GAAG,iBAAiB,CAAC;SAC9B;aAAM;YACL,IAAI,GAAG,0BAA0B,MAAM,CAAC,KAAK,EAAE,CAAC;YAChD,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE;gBACjD,QAAQ,GAAG,WAAW,CAAC;aACxB;SACF;QAED,mBAAmB;QACnB,MAAM,KAAK,GAAiB;YAC1B,IAAI;YACJ,KAAK,EAAE,iBAAiB,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE;YACtD,IAAI,EAAE,qBAAqB,CAAC,QAAQ,CAAC;YACrC,QAAQ;SACT,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"checkOwner.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkOwner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CACxB,MAAyB,EACzB,OAAuB,EACvB,MAA4B;IAE5B,MAAM,MAAM,GAAG,EAAoB,CAAC;IACpC,+CAA+C;IAC/C,IAAI,MAAM,CAAC,WAAW,EAAE;QACtB,IAAI,QAAQ,GAAmB,SAAS,CAAC;QACzC,IAAI,IAAI,GAAG,uBAAuB,CAAC;QACnC,IAAI,CAAC,MAAM,EAAE;YACX,qBAAqB;YACrB,QAAQ,GAAG,iBAAiB,CAAC;SAC9B;aAAM;YACL,IAAI,GAAG,0BAA0B,MAAM,CAAC,KAAK,EAAE,CAAC;YAChD,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE;gBACjD,QAAQ,GAAG,WAAW,CAAC;aACxB;SACF;QAED,mBAAmB;QACnB,MAAM,KAAK,GAAiB;YAC1B,IAAI;YACJ,KAAK,EAAE,iBAAiB,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE;YACtD,IAAI,EAAE,qBAAqB,CAAC,QAAQ,CAAC;YACrC,QAAQ;SACT,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -7,21 +7,25 @@ import { getPolicyResponseCode } from "./getPolicyResponseCode";
7
7
  * @returns
8
8
  */
9
9
  export function checkPrivileges(policy, context, entity) {
10
- const privs = policy.privileges || [];
11
- const checks = privs.map((privilege) => {
12
- let response = "granted";
13
- let value = "privilege present";
14
- if (!context.currentUser.privileges.includes(privilege)) {
15
- response = "privilege-required";
16
- value = "privilege missing";
17
- }
18
- return {
19
- name: `privilege required: ${privilege}`,
20
- value,
21
- response,
22
- code: getPolicyResponseCode(response),
23
- };
24
- });
10
+ var _a;
11
+ let checks = [];
12
+ // Only return a check if the policy is defined
13
+ if ((_a = policy.privileges) === null || _a === void 0 ? void 0 : _a.length) {
14
+ checks = policy.privileges.map((privilege) => {
15
+ let response = "granted";
16
+ let value = "privilege present";
17
+ if (!context.currentUser.privileges.includes(privilege)) {
18
+ response = "privilege-required";
19
+ value = "privilege missing";
20
+ }
21
+ return {
22
+ name: `privilege required: ${privilege}`,
23
+ value,
24
+ response,
25
+ code: getPolicyResponseCode(response),
26
+ };
27
+ });
28
+ }
25
29
  return checks;
26
30
  }
27
31
  //# sourceMappingURL=checkPrivileges.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkPrivileges.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkPrivileges.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAyB,EACzB,OAAuB,EACvB,MAAkB;IAElB,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;IAEtC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QACrC,IAAI,QAAQ,GAAmB,SAAS,CAAC;QACzC,IAAI,KAAK,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YACvD,QAAQ,GAAG,oBAAoB,CAAC;YAChC,KAAK,GAAG,mBAAmB,CAAC;SAC7B;QACD,OAAO;YACL,IAAI,EAAE,uBAAuB,SAAS,EAAE;YACxC,KAAK;YACL,QAAQ;YACR,IAAI,EAAE,qBAAqB,CAAC,QAAQ,CAAC;SACtB,CAAC;IACpB,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"checkPrivileges.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkPrivileges.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAyB,EACzB,OAAuB,EACvB,MAA4B;;IAE5B,IAAI,MAAM,GAAG,EAAoB,CAAC;IAClC,+CAA+C;IAC/C,UAAI,MAAM,CAAC,UAAU,0CAAE,MAAM,EAAE;QAC7B,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YAC3C,IAAI,QAAQ,GAAmB,SAAS,CAAC;YACzC,IAAI,KAAK,GAAG,mBAAmB,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBACvD,QAAQ,GAAG,oBAAoB,CAAC;gBAChC,KAAK,GAAG,mBAAmB,CAAC;aAC7B;YACD,OAAO;gBACL,IAAI,EAAE,uBAAuB,SAAS,EAAE;gBACxC,KAAK;gBACL,QAAQ;gBACR,IAAI,EAAE,qBAAqB,CAAC,QAAQ,CAAC;aACtB,CAAC;QACpB,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,21 +1,39 @@
1
1
  // TODO: Determine how to keep this in sycn with the PolicyResponse type
2
+ // Crappy tool https://jsbin.com/gojelov/edit?js,console,output
2
3
  const policyResponseCodes = [
3
- { response: "granted", code: "PC001" },
4
- { response: "org-member", code: "PC002" },
5
- { response: "not-org-member", code: "PC003" },
6
- { response: "group-member", code: "PC004" },
7
- { response: "not-group-member", code: "PC005" },
8
- { response: "is-user", code: "PC006" },
9
- { response: "not-owner", code: "PC007" },
10
- { response: "not-licensed", code: "PC008" },
11
- { response: "not-available", code: "PC009" },
12
- { response: "not-granted", code: "PC010" },
13
- { response: "no-edit-access", code: "PC011" },
14
- { response: "invalid-permission", code: "PC012" },
15
- { response: "privilege-required", code: "PC013" },
16
- { response: "system-offline", code: "PC014" },
17
- { response: "system-maintenance", code: "PC015" },
18
- { response: "not-licensed-available", code: "PC016" },
4
+ { response: "granted", code: "PC100" },
5
+ { response: "org-member", code: "PC101" },
6
+ { response: "not-org-member", code: "PC102" },
7
+ { response: "group-member", code: "PC103" },
8
+ { response: "not-group-member", code: "PC104" },
9
+ { response: "not-group-admin", code: "PC105" },
10
+ { response: "is-user", code: "PC106" },
11
+ { response: "not-owner", code: "PC107" },
12
+ { response: "not-licensed", code: "PC108" },
13
+ { response: "not-licensed-available", code: "PC109" },
14
+ { response: "not-available", code: "PC110" },
15
+ { response: "not-granted", code: "PC111" },
16
+ { response: "no-edit-access", code: "PC112" },
17
+ { response: "edit-access", code: "PC113" },
18
+ { response: "invalid-permission", code: "PC114" },
19
+ { response: "privilege-required", code: "PC115" },
20
+ { response: "system-offline", code: "PC116" },
21
+ { response: "system-maintenance", code: "PC117" },
22
+ { response: "entity-required", code: "PC118" },
23
+ { response: "not-authenticated", code: "PC119" },
24
+ { response: "not-alpha-org", code: "PC120" },
25
+ { response: "property-missing", code: "PC121" },
26
+ { response: "property-not-array", code: "PC122" },
27
+ { response: "array-contains-invalid-value", code: "PC123" },
28
+ { response: "array-missing-required-value", code: "PC124" },
29
+ { response: "property-mismatch", code: "PC125" },
30
+ { response: "user-not-group-member", code: "PC126" },
31
+ { response: "user-not-group-manager", code: "PC127" },
32
+ { response: "user-not-group-owner", code: "PC128" },
33
+ { response: "assertion-property-not-found", code: "PC129" },
34
+ { response: "assertion-failed", code: "PC130" },
35
+ { response: "assertion-requires-numeric-values", code: "PC131" },
36
+ { response: "property-match", code: "PC132" },
19
37
  ];
20
38
  /**
21
39
  * Get a code that can be used for i18n or other purposes, based on the PolicyResponse
@@ -1 +1 @@
1
- {"version":3,"file":"getPolicyResponseCode.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/getPolicyResponseCode.ts"],"names":[],"mappings":"AAOA,wEAAwE;AACxE,MAAM,mBAAmB,GAAoB;IAC3C,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;IACtC,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;IACzC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC7C,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3C,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC/C,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;IACtC,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;IACxC,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3C,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;IAC5C,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;IAC1C,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC7C,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,EAAE;IACjD,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,EAAE;IACjD,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC7C,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,EAAE;IACjD,EAAE,QAAQ,EAAE,wBAAwB,EAAE,IAAI,EAAE,OAAO,EAAE;CACtD,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAwB;IAC5D,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IACvE,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,KAAI,OAAO,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"getPolicyResponseCode.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/getPolicyResponseCode.ts"],"names":[],"mappings":"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"}