@esri/hub-common 14.2.0 → 14.3.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.
- package/dist/esm/ArcGISContext.js +1 -0
- package/dist/esm/ArcGISContext.js.map +1 -1
- package/dist/esm/ArcGISContextManager.js +1 -1
- package/dist/esm/ArcGISContextManager.js.map +1 -1
- package/dist/esm/permissions/_internal/PermissionCheckFunction.js +1 -0
- package/dist/esm/permissions/_internal/PermissionCheckFunction.js.map +1 -0
- package/dist/esm/permissions/_internal/checkAuthentication.js +1 -1
- package/dist/esm/permissions/_internal/checkAuthentication.js.map +1 -1
- package/dist/esm/permissions/_internal/checkEntityFeature.js +3 -0
- package/dist/esm/permissions/_internal/checkEntityFeature.js.map +1 -1
- package/dist/esm/permissions/_internal/checkLicense.js +1 -1
- package/dist/esm/permissions/_internal/checkLicense.js.map +1 -1
- package/dist/esm/permissions/_internal/checkPrivileges.js +2 -2
- package/dist/esm/permissions/_internal/checkPrivileges.js.map +1 -1
- package/dist/esm/permissions/_internal/getPolicyResponseCode.js +3 -0
- package/dist/esm/permissions/_internal/getPolicyResponseCode.js.map +1 -1
- package/dist/esm/permissions/checkPermission.js +132 -68
- package/dist/esm/permissions/checkPermission.js.map +1 -1
- package/dist/esm/projects/_internal/ProjectBusinessRules.js +1 -0
- package/dist/esm/projects/_internal/ProjectBusinessRules.js.map +1 -1
- package/dist/node/ArcGISContext.js +1 -0
- package/dist/node/ArcGISContext.js.map +1 -1
- package/dist/node/ArcGISContextManager.js +1 -1
- package/dist/node/ArcGISContextManager.js.map +1 -1
- package/dist/node/permissions/_internal/PermissionCheckFunction.js +3 -0
- package/dist/node/permissions/_internal/PermissionCheckFunction.js.map +1 -0
- package/dist/node/permissions/_internal/checkAuthentication.js +1 -1
- package/dist/node/permissions/_internal/checkAuthentication.js.map +1 -1
- package/dist/node/permissions/_internal/checkEntityFeature.js +3 -0
- package/dist/node/permissions/_internal/checkEntityFeature.js.map +1 -1
- package/dist/node/permissions/_internal/checkLicense.js +1 -1
- package/dist/node/permissions/_internal/checkLicense.js.map +1 -1
- package/dist/node/permissions/_internal/checkPrivileges.js +2 -2
- package/dist/node/permissions/_internal/checkPrivileges.js.map +1 -1
- package/dist/node/permissions/_internal/getPolicyResponseCode.js +3 -0
- package/dist/node/permissions/_internal/getPolicyResponseCode.js.map +1 -1
- package/dist/node/permissions/checkPermission.js +134 -70
- package/dist/node/permissions/checkPermission.js.map +1 -1
- package/dist/node/projects/_internal/ProjectBusinessRules.js +1 -0
- package/dist/node/projects/_internal/ProjectBusinessRules.js.map +1 -1
- package/dist/types/ArcGISContext.d.ts +1 -1
- package/dist/types/permissions/_internal/PermissionCheckFunction.d.ts +7 -0
- package/dist/types/permissions/_internal/checkAuthentication.d.ts +1 -1
- package/dist/types/permissions/_internal/checkLicense.d.ts +1 -1
- package/dist/types/permissions/_internal/checkPrivileges.d.ts +2 -2
- package/dist/types/permissions/checkPermission.d.ts +2 -1
- package/dist/types/permissions/types/IPermissionPolicy.d.ts +0 -4
- package/dist/types/permissions/types/PolicyResponse.d.ts +1 -1
- package/package.json +1 -1
- package/dist/esm/permissions/_internal/checkAlphaGating.js +0 -29
- package/dist/esm/permissions/_internal/checkAlphaGating.js.map +0 -1
- package/dist/node/permissions/_internal/checkAlphaGating.js +0 -33
- package/dist/node/permissions/_internal/checkAlphaGating.js.map +0 -1
- package/dist/types/permissions/_internal/checkAlphaGating.d.ts +0 -10
|
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.checkEntityFeature = void 0;
|
|
4
4
|
const get_with_default_1 = require("../../objects/get-with-default");
|
|
5
5
|
const getPolicyResponseCode_1 = require("./getPolicyResponseCode");
|
|
6
|
+
// NOTE: Entity Feature Flagging is handled in checkPermission directly
|
|
7
|
+
// as it needs to interact with the feature flagging, and depending on
|
|
8
|
+
// the outcome, possibly omit some of the checks
|
|
6
9
|
function checkEntityFeature(policy, _entitycontext, entity) {
|
|
7
10
|
const checks = [];
|
|
8
11
|
// Only check things if the policy can be configured by the entity
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkEntityFeature.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkEntityFeature.ts"],"names":[],"mappings":";;;AACA,qEAAgE;AAIhE,mEAAgE;AAEhE,SAAgB,kBAAkB,CAChC,MAAyB,EACzB,cAA8B,EAC9B,MAA4B;IAE5B,MAAM,MAAM,GAAG,EAAoB,CAAC;IACpC,kEAAkE;IAClE,oEAAoE;IACpE,IAAI,MAAM,IAAI,MAAM,CAAC,kBAAkB,EAAE;QACvC,MAAM,MAAM,GAAG,iBAAmC,CAAC;QACnD,uCAAuC;QACvC,MAAM,KAAK,GAAiB;YAC1B,IAAI,EAAE,wBAAwB;YAC9B,KAAK,EAAE,kBAAkB,MAAM,CAAC,UAAU,QAAQ;YAClD,IAAI,EAAE,6CAAqB,CAAC,MAAM,CAAC;YACnC,QAAQ,EAAE,MAAM;SACjB,CAAC;QAEF,oEAAoE;QACpE,MAAM,gBAAgB,GAAG,iCAAc,CACrC,MAAM,EACN,YAAY,MAAM,CAAC,UAAU,EAAE,EAC/B,IAAI,CACL,CAAC;QACF,IAAI,CAAC,gBAAgB,EAAE;YACrB,KAAK,CAAC,QAAQ,GAAG,kBAAkB,CAAC;YACpC,KAAK,CAAC,IAAI,GAAG,6CAAqB,CAAC,kBAAkB,CAAC,CAAC;SACxD;QACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AA/BD,gDA+BC"}
|
|
1
|
+
{"version":3,"file":"checkEntityFeature.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkEntityFeature.ts"],"names":[],"mappings":";;;AACA,qEAAgE;AAIhE,mEAAgE;AAEhE,uEAAuE;AACvE,sEAAsE;AACtE,gDAAgD;AAChD,SAAgB,kBAAkB,CAChC,MAAyB,EACzB,cAA8B,EAC9B,MAA4B;IAE5B,MAAM,MAAM,GAAG,EAAoB,CAAC;IACpC,kEAAkE;IAClE,oEAAoE;IACpE,IAAI,MAAM,IAAI,MAAM,CAAC,kBAAkB,EAAE;QACvC,MAAM,MAAM,GAAG,iBAAmC,CAAC;QACnD,uCAAuC;QACvC,MAAM,KAAK,GAAiB;YAC1B,IAAI,EAAE,wBAAwB;YAC9B,KAAK,EAAE,kBAAkB,MAAM,CAAC,UAAU,QAAQ;YAClD,IAAI,EAAE,6CAAqB,CAAC,MAAM,CAAC;YACnC,QAAQ,EAAE,MAAM;SACjB,CAAC;QAEF,oEAAoE;QACpE,MAAM,gBAAgB,GAAG,iCAAc,CACrC,MAAM,EACN,YAAY,MAAM,CAAC,UAAU,EAAE,EAC/B,IAAI,CACL,CAAC;QACF,IAAI,CAAC,gBAAgB,EAAE;YACrB,KAAK,CAAC,QAAQ,GAAG,kBAAkB,CAAC;YACpC,KAAK,CAAC,IAAI,GAAG,6CAAqB,CAAC,kBAAkB,CAAC,CAAC;SACxD;QACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AA/BD,gDA+BC"}
|
|
@@ -9,7 +9,7 @@ const getPolicyResponseCode_1 = require("./getPolicyResponseCode");
|
|
|
9
9
|
* @param context
|
|
10
10
|
* @returns
|
|
11
11
|
*/
|
|
12
|
-
function checkLicense(policy, context,
|
|
12
|
+
function checkLicense(policy, context, _entity) {
|
|
13
13
|
var _a;
|
|
14
14
|
const checks = [];
|
|
15
15
|
// Only return a check if the policy is defined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkLicense.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkLicense.ts"],"names":[],"mappings":";;;AAEA,mEAAgE;AAEhE;;;;;;GAMG;AACH,SAAgB,YAAY,CAC1B,MAAyB,EACzB,OAAuB,EACvB,
|
|
1
|
+
{"version":3,"file":"checkLicense.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkLicense.ts"],"names":[],"mappings":";;;AAEA,mEAAgE;AAEhE;;;;;;GAMG;AACH,SAAgB,YAAY,CAC1B,MAAyB,EACzB,OAAuB,EACvB,OAA6B;;IAE7B,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,6CAAqB,CAAC,MAAM,CAAC;YACnC,QAAQ,EAAE,MAAM;SACjB,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AA9BD,oCA8BC"}
|
|
@@ -6,10 +6,10 @@ const getPolicyResponseCode_1 = require("./getPolicyResponseCode");
|
|
|
6
6
|
* Validate privilege policy
|
|
7
7
|
* @param policy
|
|
8
8
|
* @param context
|
|
9
|
-
* @param
|
|
9
|
+
* @param _entity
|
|
10
10
|
* @returns
|
|
11
11
|
*/
|
|
12
|
-
function checkPrivileges(policy, context,
|
|
12
|
+
function checkPrivileges(policy, context, _entity) {
|
|
13
13
|
var _a;
|
|
14
14
|
let checks = [];
|
|
15
15
|
// Only return a check if the policy is defined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkPrivileges.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkPrivileges.ts"],"names":[],"mappings":";;;AAEA,mEAAgE;AAEhE;;;;;;GAMG;AACH,SAAgB,eAAe,CAC7B,MAAyB,EACzB,OAAuB,EACvB,
|
|
1
|
+
{"version":3,"file":"checkPrivileges.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkPrivileges.ts"],"names":[],"mappings":";;;AAEA,mEAAgE;AAEhE;;;;;;GAMG;AACH,SAAgB,eAAe,CAC7B,MAAyB,EACzB,OAAuB,EACvB,OAA6B;;IAE7B,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,6CAAqB,CAAC,QAAQ,CAAC;aACtB,CAAC;QACpB,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAzBD,0CAyBC"}
|
|
@@ -41,6 +41,9 @@ const policyResponseCodes = [
|
|
|
41
41
|
{ response: "not-in-environment", code: "PC134" },
|
|
42
42
|
{ response: "feature-disabled", code: "PC135" },
|
|
43
43
|
{ response: "feature-enabled", code: "PC136" },
|
|
44
|
+
{ response: "no-policy-exists", code: "PC137" },
|
|
45
|
+
{ response: "disabled-by-entity-flag", code: "PC137" },
|
|
46
|
+
{ response: "disabled-by-feature-flag", code: "PC137" },
|
|
44
47
|
];
|
|
45
48
|
/**
|
|
46
49
|
* Get a code that can be used for i18n or other purposes, based on the PolicyResponse
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPolicyResponseCode.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/getPolicyResponseCode.ts"],"names":[],"mappings":";;;AAOA,wEAAwE;AACxE,+DAA+D;AAC/D,MAAM,mBAAmB,GAAoB;IAC3C,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;IACtC,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;IACzC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC7C,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3C,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC/C,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC9C,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;IACtC,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;IACxC,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3C,EAAE,QAAQ,EAAE,wBAAwB,EAAE,IAAI,EAAE,OAAO,EAAE;IACrD,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;IAC5C,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;IAC1C,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC7C,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;IAC1C,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,EAAE;IACjD,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,EAAE;IACjD,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC9C,EAAE,QAAQ,EAAE,qBAAqB,EAAE,IAAI,EAAE,OAAO,EAAE;IAClD,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC9C,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,OAAO,EAAE;IAChD,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;IAC5C,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC/C,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,EAAE;IACjD,EAAE,QAAQ,EAAE,8BAA8B,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3D,EAAE,QAAQ,EAAE,8BAA8B,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3D,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,OAAO,EAAE;IAChD,EAAE,QAAQ,EAAE,uBAAuB,EAAE,IAAI,EAAE,OAAO,EAAE;IACpD,EAAE,QAAQ,EAAE,wBAAwB,EAAE,IAAI,EAAE,OAAO,EAAE;IACrD,EAAE,QAAQ,EAAE,sBAAsB,EAAE,IAAI,EAAE,OAAO,EAAE;IACnD,EAAE,QAAQ,EAAE,8BAA8B,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3D,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC/C,EAAE,QAAQ,EAAE,mCAAmC,EAAE,IAAI,EAAE,OAAO,EAAE;IAChE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC7C,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3C,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,EAAE;IACjD,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC/C,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"getPolicyResponseCode.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/getPolicyResponseCode.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,9 @@ exports.checkPermission = void 0;
|
|
|
4
4
|
const objects_1 = require("../objects");
|
|
5
5
|
const checkLicense_1 = require("./_internal/checkLicense");
|
|
6
6
|
const HubPermissionPolicies_1 = require("./HubPermissionPolicies");
|
|
7
|
-
const
|
|
7
|
+
const Permission_1 = require("./types/Permission");
|
|
8
8
|
const getPolicyResponseCode_1 = require("./_internal/getPolicyResponseCode");
|
|
9
9
|
const checkAuthentication_1 = require("./_internal/checkAuthentication");
|
|
10
|
-
const checkAlphaGating_1 = require("./_internal/checkAlphaGating");
|
|
11
10
|
const checkOwner_1 = require("./_internal/checkOwner");
|
|
12
11
|
const checkEdit_1 = require("./_internal/checkEdit");
|
|
13
12
|
const checkPrivileges_1 = require("./_internal/checkPrivileges");
|
|
@@ -16,7 +15,6 @@ const checkAssertions_1 = require("./_internal/checkAssertions");
|
|
|
16
15
|
const checkParents_1 = require("./_internal/checkParents");
|
|
17
16
|
const checkEnvironment_1 = require("./_internal/checkEnvironment");
|
|
18
17
|
const checkAvailability_1 = require("./_internal/checkAvailability");
|
|
19
|
-
const checkEntityFeature_1 = require("./_internal/checkEntityFeature");
|
|
20
18
|
const checkServiceStatus_1 = require("./_internal/checkServiceStatus");
|
|
21
19
|
/**
|
|
22
20
|
* Check a permission against the system policies, and possibly an entity policy
|
|
@@ -28,93 +26,159 @@ const checkServiceStatus_1 = require("./_internal/checkServiceStatus");
|
|
|
28
26
|
* @returns
|
|
29
27
|
*/
|
|
30
28
|
function checkPermission(permission, context, entityOrOptions) {
|
|
29
|
+
var _a;
|
|
31
30
|
const label = (entityOrOptions === null || entityOrOptions === void 0 ? void 0 : entityOrOptions.label) || "";
|
|
32
31
|
const entity = (entityOrOptions === null || entityOrOptions === void 0 ? void 0 : entityOrOptions.entity) || entityOrOptions;
|
|
33
|
-
// Default to granted
|
|
34
|
-
let response = {
|
|
35
|
-
policy: permission,
|
|
36
|
-
access: true,
|
|
37
|
-
response: "granted",
|
|
38
|
-
code: getPolicyResponseCode_1.getPolicyResponseCode("granted"),
|
|
39
|
-
checks: [],
|
|
40
|
-
};
|
|
41
32
|
// Is this even a valid permission?
|
|
42
|
-
if (!
|
|
43
|
-
|
|
33
|
+
if (!Permission_1.isPermission(permission)) {
|
|
34
|
+
const invalidPermissionResponse = {
|
|
44
35
|
policy: permission,
|
|
45
36
|
access: false,
|
|
46
37
|
response: "invalid-permission",
|
|
47
38
|
code: getPolicyResponseCode_1.getPolicyResponseCode("invalid-permission"),
|
|
48
39
|
checks: [],
|
|
49
40
|
};
|
|
41
|
+
logResponse(invalidPermissionResponse, label);
|
|
42
|
+
return invalidPermissionResponse;
|
|
43
|
+
}
|
|
44
|
+
// Get the system policy for this permission
|
|
45
|
+
const systemPolicy = HubPermissionPolicies_1.getPermissionPolicy(permission);
|
|
46
|
+
// handle null systemPolicy
|
|
47
|
+
if (!systemPolicy) {
|
|
48
|
+
const missingPolicyResponse = {
|
|
49
|
+
policy: permission,
|
|
50
|
+
access: false,
|
|
51
|
+
response: "no-policy-exists",
|
|
52
|
+
code: getPolicyResponseCode_1.getPolicyResponseCode("no-policy-exists"),
|
|
53
|
+
checks: [],
|
|
54
|
+
};
|
|
55
|
+
logResponse(missingPolicyResponse, label);
|
|
56
|
+
return missingPolicyResponse;
|
|
57
|
+
}
|
|
58
|
+
const flagging = {
|
|
59
|
+
hasFlag: false,
|
|
60
|
+
value: false,
|
|
61
|
+
type: "none",
|
|
62
|
+
};
|
|
63
|
+
// Entity Feature Flags
|
|
64
|
+
// aka how we disable "features" on a per-entity basis
|
|
65
|
+
// Is this policy configurable by the entity?
|
|
66
|
+
if (systemPolicy.entityConfigurable) {
|
|
67
|
+
// Has the entity provided a flag value?
|
|
68
|
+
if ((_a = entity === null || entity === void 0 ? void 0 : entity.features) === null || _a === void 0 ? void 0 : _a.hasOwnProperty(permission)) {
|
|
69
|
+
flagging.hasFlag = true;
|
|
70
|
+
flagging.value = entity.features[permission];
|
|
71
|
+
flagging.type = "entity";
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// Feature Flags
|
|
75
|
+
// Passed in from the application when context is created,
|
|
76
|
+
// these override entity flags, so they are checked after
|
|
77
|
+
if (context.featureFlags.hasOwnProperty(permission)) {
|
|
78
|
+
flagging.hasFlag = true;
|
|
79
|
+
flagging.value = context.featureFlags[permission];
|
|
80
|
+
flagging.type = "feature";
|
|
81
|
+
}
|
|
82
|
+
// in all cases, if flag exists and false, access is denied
|
|
83
|
+
if (flagging.hasFlag && !flagging.value) {
|
|
84
|
+
const respValue = `disabled-by-${flagging.type}-flag`;
|
|
85
|
+
const disabledByFlagResponse = {
|
|
86
|
+
policy: permission,
|
|
87
|
+
access: false,
|
|
88
|
+
response: respValue,
|
|
89
|
+
code: getPolicyResponseCode_1.getPolicyResponseCode(respValue),
|
|
90
|
+
checks: [],
|
|
91
|
+
};
|
|
92
|
+
logResponse(disabledByFlagResponse, label);
|
|
93
|
+
return disabledByFlagResponse;
|
|
94
|
+
}
|
|
95
|
+
// required checks - things feature flags can not override
|
|
96
|
+
const requiredChecks = [
|
|
97
|
+
checkParents_1.checkParents,
|
|
98
|
+
checkServiceStatus_1.checkServiceStatus,
|
|
99
|
+
checkAuthentication_1.checkAuthentication,
|
|
100
|
+
checkPrivileges_1.checkPrivileges,
|
|
101
|
+
checkOwner_1.checkOwner,
|
|
102
|
+
checkEdit_1.checkEdit,
|
|
103
|
+
checkLicense_1.checkLicense,
|
|
104
|
+
checkAssertions_1.checkAssertions,
|
|
105
|
+
];
|
|
106
|
+
// checks that feature flags can override
|
|
107
|
+
const overridableChecks = [
|
|
108
|
+
checkAvailability_1.checkAvailability,
|
|
109
|
+
checkEnvironment_1.checkEnvironment,
|
|
110
|
+
];
|
|
111
|
+
let checkFns = [];
|
|
112
|
+
// If there is a "feature" flag, set to true, for the policy
|
|
113
|
+
// we just run the required checks
|
|
114
|
+
if (flagging.hasFlag && flagging.value && flagging.type === "feature") {
|
|
115
|
+
checkFns = [...requiredChecks];
|
|
50
116
|
}
|
|
51
117
|
else {
|
|
52
|
-
//
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
118
|
+
// otherwise we run all the checks
|
|
119
|
+
checkFns = [...overridableChecks, ...requiredChecks];
|
|
120
|
+
}
|
|
121
|
+
// execute the checks
|
|
122
|
+
const checks = checkFns.reduce((acc, fn) => {
|
|
123
|
+
acc = [...acc, ...fn(systemPolicy, context, entity)];
|
|
124
|
+
return acc;
|
|
125
|
+
}, []);
|
|
126
|
+
// Default to granted
|
|
127
|
+
const response = {
|
|
128
|
+
policy: permission,
|
|
129
|
+
access: true,
|
|
130
|
+
response: "granted",
|
|
131
|
+
code: getPolicyResponseCode_1.getPolicyResponseCode("granted"),
|
|
132
|
+
checks: [],
|
|
133
|
+
};
|
|
134
|
+
// For system policies, all conditions must be met, so we can
|
|
135
|
+
// iterate through the checks and set the response to the first failure
|
|
136
|
+
// while still returning all the checks for observability
|
|
137
|
+
checks.forEach((check) => {
|
|
138
|
+
if (check.response !== "granted" && response.response === "granted") {
|
|
139
|
+
response.response = check.response;
|
|
140
|
+
response.code = check.code;
|
|
141
|
+
response.access = false;
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
response.checks = checks;
|
|
145
|
+
// Entity policies are treated as "grants" so we only need to pass one
|
|
146
|
+
if (entity) {
|
|
147
|
+
const entityPolicies = objects_1.getWithDefault(entity, "permissions", []);
|
|
148
|
+
const entityPermissionPolicies = entityPolicies.filter((e) => e.permission === permission);
|
|
149
|
+
// Entity Policies are "grants" in that only one needs to pass
|
|
150
|
+
// but we still want each check returned so we can see why they
|
|
151
|
+
// got access or got denied
|
|
152
|
+
const entityChecks = entityPermissionPolicies.map((policy) => {
|
|
153
|
+
return checkEntityPolicy_1.checkEntityPolicy(policy, context);
|
|
81
154
|
});
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
});
|
|
93
|
-
// Process them to see if any grant access
|
|
94
|
-
const grantedCheck = entityChecks.find((e) => e.response === "granted");
|
|
95
|
-
// If we did not find a check that grants access, AND we've passed
|
|
96
|
-
// all the system checks, then we set the response to "not-granted"
|
|
97
|
-
// and set the access to false
|
|
98
|
-
if (entityChecks.length &&
|
|
99
|
-
!grantedCheck &&
|
|
100
|
-
response.response === "granted") {
|
|
101
|
-
response.access = false;
|
|
102
|
-
response.response = "not-granted";
|
|
103
|
-
}
|
|
104
|
-
// Merge in the entity checks...
|
|
105
|
-
response.checks = [...response.checks, ...entityChecks];
|
|
155
|
+
// Process them to see if any grant access
|
|
156
|
+
const grantedCheck = entityChecks.find((e) => e.response === "granted");
|
|
157
|
+
// If we did not find a check that grants access, AND we've passed
|
|
158
|
+
// all the system checks, then we set the response to "not-granted"
|
|
159
|
+
// and set the access to false
|
|
160
|
+
if (entityChecks.length &&
|
|
161
|
+
!grantedCheck &&
|
|
162
|
+
response.response === "granted") {
|
|
163
|
+
response.access = false;
|
|
164
|
+
response.response = "not-granted";
|
|
106
165
|
}
|
|
166
|
+
// Merge in the entity checks...
|
|
167
|
+
response.checks = [...response.checks, ...entityChecks];
|
|
107
168
|
}
|
|
108
|
-
// log
|
|
169
|
+
// log response
|
|
170
|
+
logResponse(response, label);
|
|
171
|
+
return response;
|
|
172
|
+
}
|
|
173
|
+
exports.checkPermission = checkPermission;
|
|
174
|
+
function logResponse(response, label) {
|
|
109
175
|
if (!response.access) {
|
|
110
176
|
// tslint:disable-next-line:no-console
|
|
111
|
-
console.info(`checkPermission: ${label} ${
|
|
177
|
+
console.info(`checkPermission: ${label} ${response.policy} : ${response.response}`);
|
|
112
178
|
// tslint:disable-next-line:no-console
|
|
113
179
|
console.dir(response);
|
|
114
180
|
// tslint:disable-next-line:no-console
|
|
115
181
|
console.info(`-----------------------------------------`);
|
|
116
182
|
}
|
|
117
|
-
return response;
|
|
118
183
|
}
|
|
119
|
-
exports.checkPermission = checkPermission;
|
|
120
184
|
//# sourceMappingURL=checkPermission.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkPermission.js","sourceRoot":"","sources":["../../../src/permissions/checkPermission.ts"],"names":[],"mappings":";;;AACA,wCAA4C;AAC5C,2DAAwD;AACxD,mEAA8D;AAC9D,
|
|
1
|
+
{"version":3,"file":"checkPermission.js","sourceRoot":"","sources":["../../../src/permissions/checkPermission.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectBusinessRules.js","sourceRoot":"","sources":["../../../../src/projects/_internal/ProjectBusinessRules.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACU,QAAA,sBAAsB,GAAkB;IACnD,oBAAoB,EAAE,KAAK;IAC3B,qBAAqB,EAAE,IAAI;IAC3B,yBAAyB,EAAE,KAAK;CACjC,CAAC;AAEF;;;;GAIG;AACU,QAAA,kBAAkB,GAAG;IAChC,aAAa;IACb,oBAAoB;IACpB,oBAAoB;IACpB,kBAAkB;IAClB,kBAAkB;IAClB,mBAAmB;IACnB,oBAAoB;IACpB,qBAAqB;IACrB,yBAAyB;IACzB,gCAAgC;IAChC,iCAAiC;IACjC,+BAA+B;IAC/B,gCAAgC;IAChC,qCAAqC;IACrC,+BAA+B;IAC/B,+BAA+B;CACvB,CAAC;AAEX;;;GAGG;AACU,QAAA,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,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACrB;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;
|
|
1
|
+
{"version":3,"file":"ProjectBusinessRules.js","sourceRoot":"","sources":["../../../../src/projects/_internal/ProjectBusinessRules.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACU,QAAA,sBAAsB,GAAkB;IACnD,oBAAoB,EAAE,KAAK;IAC3B,qBAAqB,EAAE,IAAI;IAC3B,yBAAyB,EAAE,KAAK;CACjC,CAAC;AAEF;;;;GAIG;AACU,QAAA,kBAAkB,GAAG;IAChC,aAAa;IACb,oBAAoB;IACpB,oBAAoB;IACpB,kBAAkB;IAClB,kBAAkB;IAClB,mBAAmB;IACnB,oBAAoB;IACpB,qBAAqB;IACrB,yBAAyB;IACzB,gCAAgC;IAChC,iCAAiC;IACjC,+BAA+B;IAC/B,gCAAgC;IAChC,qCAAqC;IACrC,+BAA+B;IAC/B,+BAA+B;CACvB,CAAC;AAEX;;;GAGG;AACU,QAAA,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,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACrB;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;QAClC,kBAAkB,EAAE,IAAI;KACzB;IACD;QACE,UAAU,EAAE,qBAAqB;QACjC,YAAY,EAAE,CAAC,kBAAkB,CAAC;KACnC;IACD;QACE,UAAU,EAAE,yBAAyB;QACrC,YAAY,EAAE,CAAC,kBAAkB,CAAC;KACnC;IACD;QACE,UAAU,EAAE,gCAAgC;QAC5C,YAAY,EAAE,CAAC,kBAAkB,CAAC;KACnC;IACD;QACE,UAAU,EAAE,iCAAiC;QAC7C,YAAY,EAAE,CAAC,kBAAkB,CAAC;KACnC;IACD;QACE,UAAU,EAAE,+BAA+B;QAC3C,YAAY,EAAE,CAAC,kBAAkB,CAAC;KACnC;IACD;QACE,UAAU,EAAE,gCAAgC;QAC5C,YAAY,EAAE,CAAC,kBAAkB,CAAC;QAClC,WAAW,EAAE,IAAI;KAClB;IACD;QACE,UAAU,EAAE,qCAAqC;QACjD,YAAY,EAAE,CAAC,kBAAkB,CAAC;KACnC;IACD;QACE,UAAU,EAAE,+BAA+B;QAC3C,YAAY,EAAE,CAAC,kBAAkB,CAAC;KACnC;IACD;QACE,UAAU,EAAE,+BAA+B;QAC3C,YAAY,EAAE,CAAC,kBAAkB,CAAC;KACnC;CACF,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IArcGISContext } from "../../ArcGISContext";
|
|
2
|
+
import { IPermissionPolicy } from "../types/IPermissionPolicy";
|
|
3
|
+
import { IPolicyCheck } from "../types/IPolicyCheck";
|
|
4
|
+
/**
|
|
5
|
+
* Type signature for Permission Check Functions
|
|
6
|
+
*/
|
|
7
|
+
export declare type PermissionCheckFunction = (policy: IPermissionPolicy, context: IArcGISContext, entity?: Record<string, any>) => IPolicyCheck[];
|
|
@@ -7,4 +7,4 @@ import { IPermissionPolicy, IPolicyCheck } from "../types";
|
|
|
7
7
|
* @param entity
|
|
8
8
|
* @returns
|
|
9
9
|
*/
|
|
10
|
-
export declare function checkAuthentication(policy: IPermissionPolicy, context: IArcGISContext,
|
|
10
|
+
export declare function checkAuthentication(policy: IPermissionPolicy, context: IArcGISContext, _entity?: Record<string, any>): IPolicyCheck[];
|
|
@@ -7,4 +7,4 @@ import { IPermissionPolicy, IPolicyCheck } from "../types";
|
|
|
7
7
|
* @param context
|
|
8
8
|
* @returns
|
|
9
9
|
*/
|
|
10
|
-
export declare function checkLicense(policy: IPermissionPolicy, context: IArcGISContext,
|
|
10
|
+
export declare function checkLicense(policy: IPermissionPolicy, context: IArcGISContext, _entity?: Record<string, any>): IPolicyCheck[];
|
|
@@ -4,7 +4,7 @@ import { IPermissionPolicy, IPolicyCheck } from "../types";
|
|
|
4
4
|
* Validate privilege policy
|
|
5
5
|
* @param policy
|
|
6
6
|
* @param context
|
|
7
|
-
* @param
|
|
7
|
+
* @param _entity
|
|
8
8
|
* @returns
|
|
9
9
|
*/
|
|
10
|
-
export declare function checkPrivileges(policy: IPermissionPolicy, context: IArcGISContext,
|
|
10
|
+
export declare function checkPrivileges(policy: IPermissionPolicy, context: IArcGISContext, _entity?: Record<string, any>): IPolicyCheck[];
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { IArcGISContext } from "../ArcGISContext";
|
|
2
|
-
import {
|
|
2
|
+
import { Permission } from "./types/Permission";
|
|
3
|
+
import { IPermissionAccessResponse } from "./types/IPermissionAccessResponse";
|
|
3
4
|
/**
|
|
4
5
|
* Type to allow either an entity or and entity and label to be
|
|
5
6
|
* passed into `checkPermission`
|
|
@@ -58,10 +58,6 @@ export interface IPermissionPolicy {
|
|
|
58
58
|
* Must the user be the owner of the entity being accessed?
|
|
59
59
|
*/
|
|
60
60
|
entityOwner?: boolean;
|
|
61
|
-
/**
|
|
62
|
-
* DEPRECATED: Use `gatedAvailability: "alpha"` instead
|
|
63
|
-
*/
|
|
64
|
-
alpha?: boolean;
|
|
65
61
|
/**
|
|
66
62
|
* More complex policies can be defined with a set of assertions
|
|
67
63
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**`
|
|
2
2
|
* Human readable response from a policy check
|
|
3
3
|
*/
|
|
4
|
-
export declare type PolicyResponse = "granted" | "org-member" | "not-org-member" | "group-member" | "not-group-member" | "not-group-admin" | "is-user" | "not-owner" | "not-licensed" | "not-licensed-available" | "not-available" | "not-granted" | "no-edit-access" | "edit-access" | "invalid-permission" | "invalid-capability" | "privilege-required" | "service-offline" | "service-maintenance" | "service-not-available" | "entity-required" | "not-authenticated" | "not-alpha-org" | "not-beta-org" | "property-missing" | "property-not-array" | "array-contains-invalid-value" | "array-missing-required-value" | "property-mismatch" | "user-not-group-member" | "user-not-group-manager" | "user-not-group-owner" | "assertion-property-not-found" | "assertion-failed" | "assertion-requires-numeric-values" | "property-match" | "feature-disabled" | "feature-enabled" | "not-in-environment";
|
|
4
|
+
export declare type PolicyResponse = "granted" | "disabled-by-feature-flag" | "disabled-by-entity-flag" | "org-member" | "not-org-member" | "group-member" | "not-group-member" | "not-group-admin" | "is-user" | "not-owner" | "not-licensed" | "not-licensed-available" | "not-available" | "not-granted" | "no-edit-access" | "edit-access" | "invalid-permission" | "invalid-capability" | "privilege-required" | "service-offline" | "service-maintenance" | "service-not-available" | "entity-required" | "not-authenticated" | "not-alpha-org" | "not-beta-org" | "property-missing" | "property-not-array" | "array-contains-invalid-value" | "array-missing-required-value" | "property-mismatch" | "user-not-group-member" | "user-not-group-manager" | "user-not-group-owner" | "assertion-property-not-found" | "assertion-failed" | "assertion-requires-numeric-values" | "property-match" | "feature-disabled" | "feature-enabled" | "not-in-environment" | "no-policy-exists";
|
package/package.json
CHANGED
|
@@ -1,29 +0,0 @@
|
|
|
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
|
-
/* tslint:disable-next-line: no-console */
|
|
14
|
-
console.log("DEPRECATED: alpha policy is deprecated, please use gatedAvailability: alpha instead");
|
|
15
|
-
const result = context.isAlphaOrg
|
|
16
|
-
? "granted"
|
|
17
|
-
: "not-alpha-org";
|
|
18
|
-
// create the check
|
|
19
|
-
const check = {
|
|
20
|
-
name: `user in alpha org`,
|
|
21
|
-
value: context.hubLicense,
|
|
22
|
-
code: getPolicyResponseCode(result),
|
|
23
|
-
response: result,
|
|
24
|
-
};
|
|
25
|
-
checks.push(check);
|
|
26
|
-
}
|
|
27
|
-
return checks;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=checkAlphaGating.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"checkAlphaGating.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkAlphaGating.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAyB,EACzB,OAAuB,EACvB,OAA6B;IAE7B,MAAM,MAAM,GAAG,EAAoB,CAAC;IACpC,+CAA+C;IAC/C,IAAI,MAAM,CAAC,KAAK,EAAE;QAChB,0CAA0C;QAC1C,OAAO,CAAC,GAAG,CACT,qFAAqF,CACtF,CAAC;QAEF,MAAM,MAAM,GAAmB,OAAO,CAAC,UAAU;YAC/C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,eAAe,CAAC;QAEpB,mBAAmB;QACnB,MAAM,KAAK,GAAiB;YAC1B,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,OAAO,CAAC,UAAU;YACzB,IAAI,EAAE,qBAAqB,CAAC,MAAM,CAAC;YACnC,QAAQ,EAAE,MAAM;SACjB,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.checkAlphaGating = void 0;
|
|
4
|
-
const getPolicyResponseCode_1 = require("./getPolicyResponseCode");
|
|
5
|
-
/**
|
|
6
|
-
* Validate entityOwner policy
|
|
7
|
-
* @param policy
|
|
8
|
-
* @param context
|
|
9
|
-
* @param entity
|
|
10
|
-
* @returns
|
|
11
|
-
*/
|
|
12
|
-
function checkAlphaGating(policy, context, _entity) {
|
|
13
|
-
const checks = [];
|
|
14
|
-
// Only return a check if the policy is defined
|
|
15
|
-
if (policy.alpha) {
|
|
16
|
-
/* tslint:disable-next-line: no-console */
|
|
17
|
-
console.log("DEPRECATED: alpha policy is deprecated, please use gatedAvailability: alpha instead");
|
|
18
|
-
const result = context.isAlphaOrg
|
|
19
|
-
? "granted"
|
|
20
|
-
: "not-alpha-org";
|
|
21
|
-
// create the check
|
|
22
|
-
const check = {
|
|
23
|
-
name: `user in alpha org`,
|
|
24
|
-
value: context.hubLicense,
|
|
25
|
-
code: getPolicyResponseCode_1.getPolicyResponseCode(result),
|
|
26
|
-
response: result,
|
|
27
|
-
};
|
|
28
|
-
checks.push(check);
|
|
29
|
-
}
|
|
30
|
-
return checks;
|
|
31
|
-
}
|
|
32
|
-
exports.checkAlphaGating = checkAlphaGating;
|
|
33
|
-
//# sourceMappingURL=checkAlphaGating.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"checkAlphaGating.js","sourceRoot":"","sources":["../../../../src/permissions/_internal/checkAlphaGating.ts"],"names":[],"mappings":";;;AAEA,mEAAgE;AAEhE;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAC9B,MAAyB,EACzB,OAAuB,EACvB,OAA6B;IAE7B,MAAM,MAAM,GAAG,EAAoB,CAAC;IACpC,+CAA+C;IAC/C,IAAI,MAAM,CAAC,KAAK,EAAE;QAChB,0CAA0C;QAC1C,OAAO,CAAC,GAAG,CACT,qFAAqF,CACtF,CAAC;QAEF,MAAM,MAAM,GAAmB,OAAO,CAAC,UAAU;YAC/C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,eAAe,CAAC;QAEpB,mBAAmB;QACnB,MAAM,KAAK,GAAiB;YAC1B,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,OAAO,CAAC,UAAU;YACzB,IAAI,EAAE,6CAAqB,CAAC,MAAM,CAAC;YACnC,QAAQ,EAAE,MAAM;SACjB,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AA5BD,4CA4BC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { IArcGISContext } from "../../ArcGISContext";
|
|
2
|
-
import { IPermissionPolicy, IPolicyCheck } from "../types";
|
|
3
|
-
/**
|
|
4
|
-
* Validate entityOwner policy
|
|
5
|
-
* @param policy
|
|
6
|
-
* @param context
|
|
7
|
-
* @param entity
|
|
8
|
-
* @returns
|
|
9
|
-
*/
|
|
10
|
-
export declare function checkAlphaGating(policy: IPermissionPolicy, context: IArcGISContext, _entity?: Record<string, any>): IPolicyCheck[];
|