@esri/hub-common 12.0.0-alpha.2 → 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.
- package/dist/esm/capabilities/_internal/checkCapabilityAccess.js +47 -0
- package/dist/esm/capabilities/_internal/checkCapabilityAccess.js.map +1 -0
- package/dist/esm/capabilities/_internal/index.js +2 -0
- package/dist/esm/capabilities/_internal/index.js.map +1 -0
- package/dist/esm/capabilities/checkCapability.js +46 -0
- package/dist/esm/capabilities/checkCapability.js.map +1 -0
- package/dist/esm/capabilities/getWorkspaceCapabilities.js +38 -0
- package/dist/esm/capabilities/getWorkspaceCapabilities.js.map +1 -0
- package/dist/esm/capabilities/index.js +5 -0
- package/dist/esm/capabilities/index.js.map +1 -0
- package/dist/esm/capabilities/processEntityCapabilities.js +25 -0
- package/dist/esm/capabilities/processEntityCapabilities.js.map +1 -0
- package/dist/esm/capabilities/types.js +22 -0
- package/dist/esm/capabilities/types.js.map +1 -0
- package/dist/esm/core/HubItemEntity.js +8 -0
- package/dist/esm/core/HubItemEntity.js.map +1 -1
- package/dist/esm/{permissions → core}/types/IAccessResponse.js +0 -0
- package/dist/esm/core/types/IAccessResponse.js.map +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/initiatives/HubInitiative.js.map +1 -1
- package/dist/esm/initiatives/HubInitiatives.js +2 -36
- package/dist/esm/initiatives/HubInitiatives.js.map +1 -1
- package/dist/esm/initiatives/_internal/InitiativeBusinessRules.js +79 -0
- package/dist/esm/initiatives/_internal/InitiativeBusinessRules.js.map +1 -0
- package/dist/esm/initiatives/_internal/computeProps.js +31 -0
- package/dist/esm/initiatives/_internal/computeProps.js.map +1 -0
- package/dist/esm/initiatives/_internal/getPropertyMap.js +22 -0
- package/dist/esm/initiatives/_internal/getPropertyMap.js.map +1 -0
- package/dist/esm/permissions/HubPermissionPolicies.js +4 -2
- package/dist/esm/permissions/HubPermissionPolicies.js.map +1 -1
- package/dist/esm/permissions/checkPermission.js +3 -2
- package/dist/esm/permissions/checkPermission.js.map +1 -1
- package/dist/esm/permissions/types/IPermissionAccessResponse.js +1 -0
- package/dist/esm/permissions/types/IPermissionAccessResponse.js.map +1 -0
- package/dist/esm/permissions/types/Permission.js +8 -3
- package/dist/esm/permissions/types/Permission.js.map +1 -1
- package/dist/esm/permissions/types/index.js +1 -1
- package/dist/esm/permissions/types/index.js.map +1 -1
- package/dist/esm/projects/HubProject.js.map +1 -1
- package/dist/esm/projects/_internal/ProjectBusinessRules.js +79 -0
- package/dist/esm/projects/_internal/ProjectBusinessRules.js.map +1 -0
- package/dist/esm/projects/{_internal.js → _internal/computeProps.js} +7 -19
- package/dist/esm/projects/_internal/computeProps.js.map +1 -0
- package/dist/esm/projects/_internal/getPropertyMap.js +22 -0
- package/dist/esm/projects/_internal/getPropertyMap.js.map +1 -0
- package/dist/esm/projects/edit.js +2 -1
- package/dist/esm/projects/edit.js.map +1 -1
- package/dist/esm/projects/fetch.js +2 -1
- package/dist/esm/projects/fetch.js.map +1 -1
- package/dist/esm/sites/HubSites.js +8 -74
- package/dist/esm/sites/HubSites.js.map +1 -1
- package/dist/esm/sites/_internal/{SitesPermissionPolicies.js → SiteBusinessRules.js} +34 -1
- package/dist/esm/sites/_internal/SiteBusinessRules.js.map +1 -0
- package/dist/esm/sites/_internal/computeProps.js +32 -0
- package/dist/esm/sites/_internal/computeProps.js.map +1 -0
- package/dist/esm/sites/_internal/getPropertyMap.js +59 -0
- package/dist/esm/sites/_internal/getPropertyMap.js.map +1 -0
- package/dist/node/capabilities/_internal/checkCapabilityAccess.js +51 -0
- package/dist/node/capabilities/_internal/checkCapabilityAccess.js.map +1 -0
- package/dist/node/capabilities/_internal/index.js +5 -0
- package/dist/node/capabilities/_internal/index.js.map +1 -0
- package/dist/node/capabilities/checkCapability.js +50 -0
- package/dist/node/capabilities/checkCapability.js.map +1 -0
- package/dist/node/capabilities/getWorkspaceCapabilities.js +42 -0
- package/dist/node/capabilities/getWorkspaceCapabilities.js.map +1 -0
- package/dist/node/capabilities/index.js +8 -0
- package/dist/node/capabilities/index.js.map +1 -0
- package/dist/node/capabilities/processEntityCapabilities.js +29 -0
- package/dist/node/capabilities/processEntityCapabilities.js.map +1 -0
- package/dist/node/capabilities/types.js +26 -0
- package/dist/node/capabilities/types.js.map +1 -0
- package/dist/node/core/HubItemEntity.js +8 -0
- package/dist/node/core/HubItemEntity.js.map +1 -1
- package/dist/node/{permissions → core}/types/IAccessResponse.js +0 -0
- package/dist/node/core/types/IAccessResponse.js.map +1 -0
- package/dist/node/index.js +1 -0
- package/dist/node/index.js.map +1 -1
- package/dist/node/initiatives/HubInitiative.js.map +1 -1
- package/dist/node/initiatives/HubInitiatives.js +8 -42
- package/dist/node/initiatives/HubInitiatives.js.map +1 -1
- package/dist/node/initiatives/_internal/InitiativeBusinessRules.js +82 -0
- package/dist/node/initiatives/_internal/InitiativeBusinessRules.js.map +1 -0
- package/dist/node/initiatives/_internal/computeProps.js +35 -0
- package/dist/node/initiatives/_internal/computeProps.js.map +1 -0
- package/dist/node/initiatives/_internal/getPropertyMap.js +26 -0
- package/dist/node/initiatives/_internal/getPropertyMap.js.map +1 -0
- package/dist/node/permissions/HubPermissionPolicies.js +6 -4
- package/dist/node/permissions/HubPermissionPolicies.js.map +1 -1
- package/dist/node/permissions/checkPermission.js +3 -2
- package/dist/node/permissions/checkPermission.js.map +1 -1
- package/dist/node/permissions/types/IPermissionAccessResponse.js +3 -0
- package/dist/node/permissions/types/IPermissionAccessResponse.js.map +1 -0
- package/dist/node/permissions/types/Permission.js +8 -3
- package/dist/node/permissions/types/Permission.js.map +1 -1
- package/dist/node/permissions/types/index.js +1 -1
- package/dist/node/permissions/types/index.js.map +1 -1
- package/dist/node/projects/HubProject.js.map +1 -1
- package/dist/node/projects/_internal/{ProjectPermissionPolicies.js → ProjectBusinessRules.js} +40 -2
- package/dist/node/projects/_internal/ProjectBusinessRules.js.map +1 -0
- package/dist/node/projects/{_internal.js → _internal/computeProps.js} +8 -21
- package/dist/node/projects/_internal/computeProps.js.map +1 -0
- package/dist/node/projects/_internal/getPropertyMap.js +26 -0
- package/dist/node/projects/_internal/getPropertyMap.js.map +1 -0
- package/dist/node/projects/edit.js +6 -5
- package/dist/node/projects/edit.js.map +1 -1
- package/dist/node/projects/fetch.js +4 -3
- package/dist/node/projects/fetch.js.map +1 -1
- package/dist/node/sites/HubSites.js +8 -74
- package/dist/node/sites/HubSites.js.map +1 -1
- package/dist/node/sites/_internal/{SitesPermissionPolicies.js → SiteBusinessRules.js} +35 -2
- package/dist/node/sites/_internal/SiteBusinessRules.js.map +1 -0
- package/dist/node/sites/_internal/computeProps.js +36 -0
- package/dist/node/sites/_internal/computeProps.js.map +1 -0
- package/dist/node/sites/_internal/getPropertyMap.js +63 -0
- package/dist/node/sites/_internal/getPropertyMap.js.map +1 -0
- package/dist/types/capabilities/_internal/checkCapabilityAccess.d.ts +10 -0
- package/dist/types/capabilities/_internal/index.d.ts +1 -0
- package/dist/types/capabilities/checkCapability.d.ts +10 -0
- package/dist/types/capabilities/getWorkspaceCapabilities.d.ts +15 -0
- package/dist/types/capabilities/index.d.ts +4 -0
- package/dist/types/capabilities/processEntityCapabilities.d.ts +8 -0
- package/dist/types/capabilities/types.d.ts +57 -0
- package/dist/types/content/_internal.d.ts +2 -1
- package/dist/types/core/HubItemEntity.d.ts +10 -4
- package/dist/types/core/behaviors/IWithPermissionBehavior.d.ts +10 -2
- package/dist/types/core/traits/IWithPermissions.d.ts +2 -0
- package/dist/types/{permissions → core}/types/IAccessResponse.d.ts +1 -15
- package/dist/types/core/types/IHubSite.d.ts +4 -4
- package/dist/types/index.d.ts +1 -0
- package/dist/types/initiatives/HubInitiative.d.ts +2 -2
- package/dist/types/initiatives/_internal/InitiativeBusinessRules.d.ts +26 -0
- package/dist/types/initiatives/_internal/computeProps.d.ts +12 -0
- package/dist/types/initiatives/_internal/getPropertyMap.d.ts +8 -0
- package/dist/types/permissions/checkPermission.d.ts +2 -2
- package/dist/types/permissions/types/IPermissionAccessResponse.d.ts +18 -0
- package/dist/types/permissions/types/Permission.d.ts +1 -1
- package/dist/types/permissions/types/PolicyResponse.d.ts +1 -1
- package/dist/types/permissions/types/index.d.ts +1 -1
- package/dist/types/projects/HubProject.d.ts +2 -2
- package/dist/types/projects/_internal/ProjectBusinessRules.d.ts +26 -0
- package/dist/types/projects/{_internal.d.ts → _internal/computeProps.d.ts} +2 -10
- package/dist/types/projects/_internal/getPropertyMap.d.ts +8 -0
- package/dist/types/sites/_internal/SiteBusinessRules.d.ts +25 -0
- package/dist/types/sites/_internal/computeProps.d.ts +12 -0
- package/dist/types/sites/_internal/getPropertyMap.d.ts +10 -0
- package/package.json +1 -1
- package/dist/esm/permissions/types/IAccessResponse.js.map +0 -1
- package/dist/esm/projects/_internal/ProjectPermissionPolicies.js +0 -41
- package/dist/esm/projects/_internal/ProjectPermissionPolicies.js.map +0 -1
- package/dist/esm/projects/_internal.js.map +0 -1
- package/dist/esm/sites/_internal/SitesPermissionPolicies.js.map +0 -1
- package/dist/node/permissions/types/IAccessResponse.js.map +0 -1
- package/dist/node/projects/_internal/ProjectPermissionPolicies.js.map +0 -1
- package/dist/node/projects/_internal.js.map +0 -1
- package/dist/node/sites/_internal/SitesPermissionPolicies.js.map +0 -1
- package/dist/types/projects/_internal/ProjectPermissionPolicies.d.ts +0 -8
- package/dist/types/sites/_internal/SitesPermissionPolicies.d.ts +0 -11
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkCapabilityAccess = void 0;
|
|
4
|
+
const index_1 = require("../../index");
|
|
5
|
+
/**
|
|
6
|
+
* Check an individual capability access rule
|
|
7
|
+
* @param rule
|
|
8
|
+
* @param context
|
|
9
|
+
* @param entity
|
|
10
|
+
* @returns
|
|
11
|
+
*/
|
|
12
|
+
function checkCapabilityAccess(rule, context, entity) {
|
|
13
|
+
// check if the capability is disabled for the entity; we default to false
|
|
14
|
+
const value = entity.capabilities[rule.capability] || false;
|
|
15
|
+
// if disabled, then access is denied
|
|
16
|
+
if (!value) {
|
|
17
|
+
return {
|
|
18
|
+
capability: rule.capability,
|
|
19
|
+
access: false,
|
|
20
|
+
code: "disabled",
|
|
21
|
+
response: "not-available",
|
|
22
|
+
message: `Owner ${entity.owner} has disabled ${rule.capability} capability.`,
|
|
23
|
+
responses: [],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
// check each permission in the rule
|
|
28
|
+
const chks = rule.permissions.map((permission) => {
|
|
29
|
+
return index_1.checkPermission(permission, context, entity);
|
|
30
|
+
});
|
|
31
|
+
// default to last check
|
|
32
|
+
let accessCheck = chks[chks.length - 1];
|
|
33
|
+
// if all checks are true, then access is granted
|
|
34
|
+
const access = chks.every((chk) => chk.access);
|
|
35
|
+
if (!access) {
|
|
36
|
+
// get the first failed check and use it's values in the response
|
|
37
|
+
accessCheck = chks.find((chk) => !chk.access);
|
|
38
|
+
}
|
|
39
|
+
// construct the response
|
|
40
|
+
return {
|
|
41
|
+
capability: rule.capability,
|
|
42
|
+
access: accessCheck.access,
|
|
43
|
+
code: accessCheck.code,
|
|
44
|
+
response: accessCheck.response,
|
|
45
|
+
message: accessCheck.message,
|
|
46
|
+
responses: chks,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.checkCapabilityAccess = checkCapabilityAccess;
|
|
51
|
+
//# sourceMappingURL=checkCapabilityAccess.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkCapabilityAccess.js","sourceRoot":"","sources":["../../../../src/capabilities/_internal/checkCapabilityAccess.ts"],"names":[],"mappings":";;;AAAA,uCAKqB;AAGrB;;;;;;GAMG;AACH,SAAgB,qBAAqB,CACnC,IAA2B,EAC3B,OAAuB,EACvB,MAAiB;IAEjB,0EAA0E;IAC1E,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC;IAC5D,qCAAqC;IACrC,IAAI,CAAC,KAAK,EAAE;QACV,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,eAAe;YACzB,OAAO,EAAE,SAAS,MAAM,CAAC,KAAK,iBAAiB,IAAI,CAAC,UAAU,cAAc;YAC5E,SAAS,EAAE,EAAE;SACd,CAAC;KACH;SAAM;QACL,oCAAoC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YAC/C,OAAO,uBAAe,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,wBAAwB;QACxB,IAAI,WAAW,GAA8B,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnE,iDAAiD;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE/C,IAAI,CAAC,MAAM,EAAE;YACX,iEAAiE;YACjE,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SAC/C;QACD,yBAAyB;QACzB,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,SAAS,EAAE,IAAI;SAChB,CAAC;KACH;AACH,CAAC;AAzCD,sDAyCC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/capabilities/_internal/index.ts"],"names":[],"mappings":";;;AAAA,kEAAwC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkCapability = void 0;
|
|
4
|
+
const index_1 = require("../index");
|
|
5
|
+
const types_1 = require("./types");
|
|
6
|
+
const getWorkspaceCapabilities_1 = require("./getWorkspaceCapabilities");
|
|
7
|
+
const _internal_1 = require("./_internal");
|
|
8
|
+
/**
|
|
9
|
+
* Check if a capability is enabled for a given entity and if the current user has necessary permissions to access it
|
|
10
|
+
* @param capability
|
|
11
|
+
* @param context
|
|
12
|
+
* @param entity
|
|
13
|
+
* @returns
|
|
14
|
+
*/
|
|
15
|
+
function checkCapability(capability, context, entity) {
|
|
16
|
+
const entityType = index_1.getTypeFromEntity(entity);
|
|
17
|
+
// Find the rule for the given entity type and capability
|
|
18
|
+
const isValid = types_1.isCapability(capability);
|
|
19
|
+
if (isValid) {
|
|
20
|
+
const rule = getWorkspaceCapabilities_1.CapabilityPermissions.find((e) => e.entity === entityType && e.capability === capability);
|
|
21
|
+
if (rule) {
|
|
22
|
+
// check each capability access rule
|
|
23
|
+
return _internal_1.checkCapabilityAccess(rule, context, entity);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
// No rule found
|
|
27
|
+
return {
|
|
28
|
+
capability,
|
|
29
|
+
access: false,
|
|
30
|
+
code: "disabled",
|
|
31
|
+
response: "not-available",
|
|
32
|
+
message: `Capability "${capability}" is not defined for ${entityType}.`,
|
|
33
|
+
responses: [],
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
// Invlaid Capability
|
|
39
|
+
return {
|
|
40
|
+
capability,
|
|
41
|
+
access: false,
|
|
42
|
+
code: "disabled",
|
|
43
|
+
response: "invalid-capability",
|
|
44
|
+
message: `Value "${capability}" is not a valid Hub Capability.`,
|
|
45
|
+
responses: [],
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.checkCapability = checkCapability;
|
|
50
|
+
//# sourceMappingURL=checkCapability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkCapability.js","sourceRoot":"","sources":["../../../src/capabilities/checkCapability.ts"],"names":[],"mappings":";;;AAAA,oCAKkB;AAClB,mCAA8E;AAC9E,yEAAmE;AACnE,2CAAoD;AAEpD;;;;;;GAMG;AACH,SAAgB,eAAe,CAC7B,UAAsB,EACtB,OAAuB,EACvB,MAAiB;IAEjB,MAAM,UAAU,GAAkB,yBAAiB,CAAC,MAAM,CAAC,CAAC;IAC5D,yDAAyD;IACzD,MAAM,OAAO,GAAG,oBAAY,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,OAAO,EAAE;QACX,MAAM,IAAI,GAAG,gDAAqB,CAAC,IAAI,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,CAC9D,CAAC;QACF,IAAI,IAAI,EAAE;YACR,oCAAoC;YACpC,OAAO,iCAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;SACrD;aAAM;YACL,gBAAgB;YAChB,OAAO;gBACL,UAAU;gBACV,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,eAAe;gBACzB,OAAO,EAAE,eAAe,UAAU,wBAAwB,UAAU,GAAG;gBACvE,SAAS,EAAE,EAAE;aACe,CAAC;SAChC;KACF;SAAM;QACL,qBAAqB;QACrB,OAAO;YACL,UAAU;YACV,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,oBAAoB;YAC9B,OAAO,EAAE,UAAU,UAAU,kCAAkC;YAC/D,SAAS,EAAE,EAAE;SACe,CAAC;KAChC;AACH,CAAC;AArCD,0CAqCC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getWorkspaceCapabilities = exports.CapabilityPermissions = void 0;
|
|
4
|
+
const getTypeFromEntity_1 = require("../core/getTypeFromEntity");
|
|
5
|
+
const ProjectBusinessRules_1 = require("../projects/_internal/ProjectBusinessRules");
|
|
6
|
+
const checkCapabilityAccess_1 = require("./_internal/checkCapabilityAccess");
|
|
7
|
+
const InitiativeBusinessRules_1 = require("../initiatives/_internal/InitiativeBusinessRules");
|
|
8
|
+
const SiteBusinessRules_1 = require("../sites/_internal/SiteBusinessRules");
|
|
9
|
+
/**
|
|
10
|
+
* List of all the Capability Permissions in the Hub System
|
|
11
|
+
* These are defined in the entity specific modules files
|
|
12
|
+
*/
|
|
13
|
+
exports.CapabilityPermissions = [
|
|
14
|
+
...ProjectBusinessRules_1.ProjectCapabilityPermissions,
|
|
15
|
+
...InitiativeBusinessRules_1.InitiativeCapabilityPermissions,
|
|
16
|
+
...SiteBusinessRules_1.SiteCapabilityPermissions,
|
|
17
|
+
];
|
|
18
|
+
/**
|
|
19
|
+
* Return the capabilities that are granted to the current user for a given entity
|
|
20
|
+
* This is used by the Hub Components to determine which Workspace Navigation Links to show
|
|
21
|
+
* @param entity
|
|
22
|
+
* @param context
|
|
23
|
+
* @returns
|
|
24
|
+
*/
|
|
25
|
+
function getWorkspaceCapabilities(entity, context) {
|
|
26
|
+
const entityType = getTypeFromEntity_1.getTypeFromEntity(entity);
|
|
27
|
+
// filter to the rules for the given entity type
|
|
28
|
+
const capabilityAccessRules = exports.CapabilityPermissions.filter((e) => e.entity === entityType);
|
|
29
|
+
// check each capability access rule
|
|
30
|
+
const responses = capabilityAccessRules.map((rule) => {
|
|
31
|
+
return checkCapabilityAccess_1.checkCapabilityAccess(rule, context, entity);
|
|
32
|
+
});
|
|
33
|
+
// map out those capabilities that are granted so consumers can easily work with that list
|
|
34
|
+
const granted = responses.filter((r) => r.access).map((r) => r.capability);
|
|
35
|
+
// return the full response with the details and the granted capabilities list
|
|
36
|
+
return {
|
|
37
|
+
granted,
|
|
38
|
+
details: responses,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
exports.getWorkspaceCapabilities = getWorkspaceCapabilities;
|
|
42
|
+
//# sourceMappingURL=getWorkspaceCapabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getWorkspaceCapabilities.js","sourceRoot":"","sources":["../../../src/capabilities/getWorkspaceCapabilities.ts"],"names":[],"mappings":";;;AACA,iEAA8D;AAE9D,qFAA0F;AAC1F,6EAA0E;AAC1E,8FAAmG;AACnG,4EAAiF;AAEjF;;;GAGG;AACU,QAAA,qBAAqB,GAA4B;IAC5D,GAAG,mDAA4B;IAC/B,GAAG,yDAA+B;IAClC,GAAG,6CAAyB;CAC7B,CAAC;AAEF;;;;;;GAMG;AACH,SAAgB,wBAAwB,CACtC,MAAiB,EACjB,OAAuB;IAEvB,MAAM,UAAU,GAAkB,qCAAiB,CAAC,MAAM,CAAC,CAAC;IAC5D,gDAAgD;IAChD,MAAM,qBAAqB,GAAG,6BAAqB,CAAC,MAAM,CACxD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAC/B,CAAC;IAEF,oCAAoC;IACpC,MAAM,SAAS,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACnD,OAAO,6CAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IACH,0FAA0F;IAC1F,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC3E,8EAA8E;IAC9E,OAAO;QACL,OAAO;QACP,OAAO,EAAE,SAAS;KACnB,CAAC;AACJ,CAAC;AArBD,4DAqBC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./types"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./processEntityCapabilities"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./getWorkspaceCapabilities"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./checkCapability"), exports);
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/capabilities/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,sEAA4C;AAC5C,qEAA2C;AAC3C,4DAAkC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.processEntityCapabilities = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Take an entity's capabilities and merge them with the default capabilities ensuring that only the capabilities defined in the business rules are allowed through.
|
|
6
|
+
* @param entityCapabilities
|
|
7
|
+
* @param defaultCapabilities
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
function processEntityCapabilities(entityCapabilities, defaultCapabilities) {
|
|
11
|
+
// Extend the default capabilities with the entity capabilities
|
|
12
|
+
const capabilities = Object.assign(Object.assign({}, defaultCapabilities), entityCapabilities);
|
|
13
|
+
// Remove any capabilities that are not in the default capabilities hash.
|
|
14
|
+
// this prevents enabling capabilities that are not defined in hub business rules
|
|
15
|
+
const defaultKeys = Object.keys(defaultCapabilities);
|
|
16
|
+
const keysToRemove = Object.keys(capabilities).reduce((acc, key) => {
|
|
17
|
+
if (!defaultKeys.includes(key)) {
|
|
18
|
+
acc.push(key);
|
|
19
|
+
}
|
|
20
|
+
return acc;
|
|
21
|
+
}, []);
|
|
22
|
+
// remove any keys that are not in the default capabilities hash
|
|
23
|
+
keysToRemove.forEach((key) => {
|
|
24
|
+
delete capabilities[key];
|
|
25
|
+
});
|
|
26
|
+
return capabilities;
|
|
27
|
+
}
|
|
28
|
+
exports.processEntityCapabilities = processEntityCapabilities;
|
|
29
|
+
//# sourceMappingURL=processEntityCapabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processEntityCapabilities.js","sourceRoot":"","sources":["../../../src/capabilities/processEntityCapabilities.ts"],"names":[],"mappings":";;;AAEA;;;;;GAKG;AACH,SAAgB,yBAAyB,CACvC,kBAAsC,EACtC,mBAAuC;IAEvC,+DAA+D;IAC/D,MAAM,YAAY,mCAAQ,mBAAmB,GAAK,kBAAkB,CAAE,CAAC;IAEvE,yEAAyE;IACzE,iFAAiF;IACjF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACjE,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,gEAAgE;IAChE,YAAY,CAAC,OAAO,CAAC,CAAC,GAAe,EAAE,EAAE;QACvC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,OAAO,YAAY,CAAC;AACtB,CAAC;AArBD,8DAqBC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isCapability = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Hub System Capabilities
|
|
6
|
+
*/
|
|
7
|
+
const validCapabilities = [
|
|
8
|
+
"collaboration",
|
|
9
|
+
"details",
|
|
10
|
+
"discussions",
|
|
11
|
+
"events",
|
|
12
|
+
"followers",
|
|
13
|
+
"overview",
|
|
14
|
+
"settings",
|
|
15
|
+
"teams",
|
|
16
|
+
];
|
|
17
|
+
/**
|
|
18
|
+
* Validate a capability. This is used because the libary can be used outside of typescript and we want to be able to return a message is the string passed in is not a valid capability
|
|
19
|
+
* @param Capability
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
function isCapability(maybeCapability) {
|
|
23
|
+
return validCapabilities.includes(maybeCapability);
|
|
24
|
+
}
|
|
25
|
+
exports.isCapability = isCapability;
|
|
26
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/capabilities/types.ts"],"names":[],"mappings":";;;AAQA;;GAEG;AACH,MAAM,iBAAiB,GAAG;IACxB,eAAe;IACf,SAAS;IACT,aAAa;IACb,QAAQ;IACR,WAAW;IACX,UAAU;IACV,UAAU;IACV,OAAO;CACC,CAAC;AAOX;;;;GAIG;AACH,SAAgB,YAAY,CAAC,eAAuB;IAClD,OAAO,iBAAiB,CAAC,QAAQ,CAAC,eAA6B,CAAC,CAAC;AACnE,CAAC;AAFD,oCAEC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.HubItemEntity = void 0;
|
|
4
4
|
const arcgis_rest_portal_1 = require("@esri/arcgis-rest-portal");
|
|
5
|
+
const capabilities_1 = require("../capabilities");
|
|
5
6
|
const HubError_1 = require("../HubError");
|
|
6
7
|
const items_1 = require("../items");
|
|
7
8
|
const setItemThumbnail_1 = require("../items/setItemThumbnail");
|
|
@@ -53,6 +54,13 @@ class HubItemEntity {
|
|
|
53
54
|
removePermissionPolicy(permission, id) {
|
|
54
55
|
this.entity.permissions = permissions_1.removePermissionPolicy(this.entity.permissions, permission, id);
|
|
55
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Check if the current user can access a specific capability
|
|
59
|
+
* @param capability
|
|
60
|
+
*/
|
|
61
|
+
checkCapability(capability) {
|
|
62
|
+
return capabilities_1.checkCapability(capability, this.context, this.entity);
|
|
63
|
+
}
|
|
56
64
|
// Although we don't expose all the properties, we do expose a few for convenience
|
|
57
65
|
/**
|
|
58
66
|
* Return the entity id
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HubItemEntity.js","sourceRoot":"","sources":["../../../src/core/HubItemEntity.ts"],"names":[],"mappings":";;;AAAA,iEAOkC;AAElC,0CAAmC;AACnC,oCAA+C;AAC/C,gEAA6D;AAC7D,gDAOwB;AACxB,4CAAsE;AACtE,kCAAsC;
|
|
1
|
+
{"version":3,"file":"HubItemEntity.js","sourceRoot":"","sources":["../../../src/core/HubItemEntity.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IAccessResponse.js","sourceRoot":"","sources":["../../../../src/core/types/IAccessResponse.ts"],"names":[],"mappings":""}
|
package/dist/node/index.js
CHANGED
|
@@ -13,6 +13,7 @@ tslib_1.__exportStar(require("./auth"), exports);
|
|
|
13
13
|
tslib_1.__exportStar(require("./categories"), exports);
|
|
14
14
|
tslib_1.__exportStar(require("./content"), exports);
|
|
15
15
|
tslib_1.__exportStar(require("./core"), exports);
|
|
16
|
+
tslib_1.__exportStar(require("./capabilities"), exports);
|
|
16
17
|
tslib_1.__exportStar(require("./downloads"), exports);
|
|
17
18
|
tslib_1.__exportStar(require("./extent"), exports);
|
|
18
19
|
tslib_1.__exportStar(require("./groups"), exports);
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;gBACgB;AAChB,0BAA0B;;;;AAE1B,mDAAyB;AACzB,gDAAsB;AACtB,0DAAgC;AAChC,iEAAuC;AACvC,iDAAuB;AACvB,uDAA6B;AAC7B,oDAA0B;AAC1B,iDAAuB;AACvB,sDAA4B;AAC5B,mDAAyB;AACzB,mDAAyB;AACzB,iDAAuB;AACvB,wDAA8B;AAC9B,kDAAwB;AACxB,mDAAyB;AACzB,oDAA0B;AAC1B,gDAAsB;AACtB,kDAAwB;AACxB,wDAA8B;AAC9B,qDAA2B;AAC3B,oDAA0B;AAC1B,sDAA4B;AAC5B,mDAAyB;AACzB,kDAAwB;AACxB,oDAA0B;AAC1B,kDAAwB;AACxB,iDAAuB;AACvB,kDAAwB;AACxB,iDAAuB;AACvB,kDAAwB;AAExB,qDAA8C;AAKrC,yBALF,wBAAc,CAKE;AAJvB,qDAA8C;AAIrB,yBAJlB,wBAAc,CAIkB;AAHvC,yCAAkC;AAGO,mBAHlC,kBAAQ,CAGkC;AACjD,6BAAkC;AAAzB,4FAAA,IAAI,OAAA;AAAE,4FAAA,IAAI,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;gBACgB;AAChB,0BAA0B;;;;AAE1B,mDAAyB;AACzB,gDAAsB;AACtB,0DAAgC;AAChC,iEAAuC;AACvC,iDAAuB;AACvB,uDAA6B;AAC7B,oDAA0B;AAC1B,iDAAuB;AACvB,yDAA+B;AAC/B,sDAA4B;AAC5B,mDAAyB;AACzB,mDAAyB;AACzB,iDAAuB;AACvB,wDAA8B;AAC9B,kDAAwB;AACxB,mDAAyB;AACzB,oDAA0B;AAC1B,gDAAsB;AACtB,kDAAwB;AACxB,wDAA8B;AAC9B,qDAA2B;AAC3B,oDAA0B;AAC1B,sDAA4B;AAC5B,mDAAyB;AACzB,kDAAwB;AACxB,oDAA0B;AAC1B,kDAAwB;AACxB,iDAAuB;AACvB,kDAAwB;AACxB,iDAAuB;AACvB,kDAAwB;AAExB,qDAA8C;AAKrC,yBALF,wBAAc,CAKE;AAJvB,qDAA8C;AAIrB,yBAJlB,wBAAc,CAIkB;AAHvC,yCAAkC;AAGO,mBAHlC,kBAAQ,CAGkC;AACjD,6BAAkC;AAAzB,4FAAA,IAAI,OAAA;AAAE,4FAAA,IAAI,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HubInitiative.js","sourceRoot":"","sources":["../../../src/initiatives/HubInitiative.ts"],"names":[],"mappings":";;;AAAA,yCAAgD;
|
|
1
|
+
{"version":3,"file":"HubInitiative.js","sourceRoot":"","sources":["../../../src/initiatives/HubInitiative.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,19 +11,8 @@ const parseInclude_1 = require("../search/_internal/parseInclude");
|
|
|
11
11
|
const _enrichments_1 = require("../items/_enrichments");
|
|
12
12
|
const _internal_1 = require("../content/_internal");
|
|
13
13
|
const defaults_1 = require("./defaults");
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
* Returns an Array of IPropertyMap objects
|
|
17
|
-
* that define the projection of properties from a IModel to an IHubInitiative
|
|
18
|
-
* @returns
|
|
19
|
-
*/
|
|
20
|
-
function getPropertyMap() {
|
|
21
|
-
const map = getBasePropertyMap_1.getBasePropertyMap();
|
|
22
|
-
// Type specific mappings
|
|
23
|
-
map.push({ objectKey: "catalog", modelKey: "data.catalog" });
|
|
24
|
-
map.push({ objectKey: "permissions", modelKey: "data.permissions" });
|
|
25
|
-
return map;
|
|
26
|
-
}
|
|
14
|
+
const getPropertyMap_1 = require("./_internal/getPropertyMap");
|
|
15
|
+
const computeProps_1 = require("./_internal/computeProps");
|
|
27
16
|
/**
|
|
28
17
|
* @private
|
|
29
18
|
* Create a new Hub Initiative item
|
|
@@ -46,14 +35,14 @@ async function createInitiative(partialInitiative, requestOptions) {
|
|
|
46
35
|
// add slug to keywords
|
|
47
36
|
initiative.typeKeywords = slugs_1.setSlugKeyword(initiative.typeKeywords, initiative.slug);
|
|
48
37
|
// Map initiative object onto a default initiative Model
|
|
49
|
-
const mapper = new PropertyMapper_1.PropertyMapper(getPropertyMap());
|
|
38
|
+
const mapper = new PropertyMapper_1.PropertyMapper(getPropertyMap_1.getPropertyMap());
|
|
50
39
|
// create model from object, using the default model as a starting point
|
|
51
40
|
let model = mapper.objectToModel(initiative, index_1.cloneObject(defaults_1.DEFAULT_INITIATIVE_MODEL));
|
|
52
41
|
// create the item
|
|
53
42
|
model = await models_1.createModel(model, requestOptions);
|
|
54
43
|
// map the model back into a IHubInitiative
|
|
55
44
|
let newInitiative = mapper.modelToObject(model, {});
|
|
56
|
-
newInitiative = computeProps(model, newInitiative, requestOptions);
|
|
45
|
+
newInitiative = computeProps_1.computeProps(model, newInitiative, requestOptions);
|
|
57
46
|
// and return it
|
|
58
47
|
return newInitiative;
|
|
59
48
|
}
|
|
@@ -70,7 +59,7 @@ async function updateInitiative(initiative, requestOptions) {
|
|
|
70
59
|
// get the backing item & data
|
|
71
60
|
const model = await models_1.getModel(initiative.id, requestOptions);
|
|
72
61
|
// create the PropertyMapper
|
|
73
|
-
const mapper = new PropertyMapper_1.PropertyMapper(getPropertyMap());
|
|
62
|
+
const mapper = new PropertyMapper_1.PropertyMapper(getPropertyMap_1.getPropertyMap());
|
|
74
63
|
// Note: Although we are fetching the model, and applying changes onto it,
|
|
75
64
|
// we are not attempting to handle "concurrent edit" conflict resolution
|
|
76
65
|
// but this is where we would apply that sort of logic
|
|
@@ -79,7 +68,7 @@ async function updateInitiative(initiative, requestOptions) {
|
|
|
79
68
|
const updatedModel = await models_1.updateModel(modelToUpdate, requestOptions);
|
|
80
69
|
// now map back into an initiative and return that
|
|
81
70
|
let updatedInitiative = mapper.modelToObject(updatedModel, initiative);
|
|
82
|
-
updatedInitiative = computeProps(model, updatedInitiative, requestOptions);
|
|
71
|
+
updatedInitiative = computeProps_1.computeProps(model, updatedInitiative, requestOptions);
|
|
83
72
|
// the casting is needed because modelToObject returns a `Partial<T>`
|
|
84
73
|
// where as this function returns a `T`
|
|
85
74
|
return updatedInitiative;
|
|
@@ -129,34 +118,11 @@ exports.deleteInitiative = deleteInitiative;
|
|
|
129
118
|
*/
|
|
130
119
|
async function convertItemToInitiative(item, requestOptions) {
|
|
131
120
|
const model = await models_1.fetchModelFromItem(item, requestOptions);
|
|
132
|
-
const mapper = new PropertyMapper_1.PropertyMapper(getPropertyMap());
|
|
121
|
+
const mapper = new PropertyMapper_1.PropertyMapper(getPropertyMap_1.getPropertyMap());
|
|
133
122
|
const prj = mapper.modelToObject(model, {});
|
|
134
|
-
return computeProps(model, prj, requestOptions);
|
|
123
|
+
return computeProps_1.computeProps(model, prj, requestOptions);
|
|
135
124
|
}
|
|
136
125
|
exports.convertItemToInitiative = convertItemToInitiative;
|
|
137
|
-
/**
|
|
138
|
-
* Given a model and an initiative, set various computed properties that can't be directly mapped
|
|
139
|
-
* @param model
|
|
140
|
-
* @param initiative
|
|
141
|
-
* @param requestOptions
|
|
142
|
-
* @returns
|
|
143
|
-
*/
|
|
144
|
-
function computeProps(model, initiative, requestOptions) {
|
|
145
|
-
let token;
|
|
146
|
-
if (requestOptions.authentication) {
|
|
147
|
-
const session = requestOptions.authentication;
|
|
148
|
-
token = session.token;
|
|
149
|
-
}
|
|
150
|
-
// thumbnail url
|
|
151
|
-
initiative.thumbnailUrl = index_1.getItemThumbnailUrl(model.item, requestOptions, token);
|
|
152
|
-
// Handle Dates
|
|
153
|
-
initiative.createdDate = new Date(model.item.created);
|
|
154
|
-
initiative.createdDateSource = "item.created";
|
|
155
|
-
initiative.updatedDate = new Date(model.item.modified);
|
|
156
|
-
initiative.updatedDateSource = "item.modified";
|
|
157
|
-
// cast b/c this takes a partial but returns a full initiative
|
|
158
|
-
return initiative;
|
|
159
|
-
}
|
|
160
126
|
/**
|
|
161
127
|
* @private
|
|
162
128
|
* Fetch Initiative specific enrichments
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HubInitiatives.js","sourceRoot":"","sources":["../../../src/initiatives/HubInitiatives.ts"],"names":[],"mappings":";;;AAEA,4EAA4E;AAC5E,sCAKmB;AACnB,0CAKwB;AACxB,oCAWkB;AAClB,iEAKkC;AAGlC,qEAAgF;AAGhF,mEAAgE;AAChE,wDAA6D;AAC7D,oDAAyD;AACzD,yCAA0E;
|
|
1
|
+
{"version":3,"file":"HubInitiatives.js","sourceRoot":"","sources":["../../../src/initiatives/HubInitiatives.ts"],"names":[],"mappings":";;;AAEA,4EAA4E;AAC5E,sCAKmB;AACnB,0CAKwB;AACxB,oCAWkB;AAClB,iEAKkC;AAGlC,qEAAgF;AAGhF,mEAAgE;AAChE,wDAA6D;AAC7D,oDAAyD;AACzD,yCAA0E;AAE1E,+DAA4D;AAC5D,2DAAwD;AAExD;;;;;;;;GAQG;AACI,KAAK,UAAU,gBAAgB,CACpC,iBAA0C,EAC1C,cAAmC;IAEnC,kCAAkC;IAClC,2CAA2C;IAC3C,MAAM,UAAU,mCAAQ,6BAAkB,GAAK,iBAAiB,CAAE,CAAC;IAEnE,uDAAuD;IACvD,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;QACpB,UAAU,CAAC,IAAI,GAAG,qBAAa,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;KACxE;IACD,yBAAyB;IACzB,UAAU,CAAC,IAAI,GAAG,MAAM,qBAAa,CACnC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EACzB,cAAc,CACf,CAAC;IACF,uBAAuB;IACvB,UAAU,CAAC,YAAY,GAAG,sBAAc,CACtC,UAAU,CAAC,YAAY,EACvB,UAAU,CAAC,IAAI,CAChB,CAAC;IACF,wDAAwD;IACxD,MAAM,MAAM,GAAG,IAAI,+BAAc,CAA0B,+BAAc,EAAE,CAAC,CAAC;IAC7E,wEAAwE;IACxE,IAAI,KAAK,GAAG,MAAM,CAAC,aAAa,CAC9B,UAAU,EACV,mBAAW,CAAC,mCAAwB,CAAC,CACtC,CAAC;IACF,kBAAkB;IAClB,KAAK,GAAG,MAAM,oBAAW,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IACjD,2CAA2C;IAC3C,IAAI,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACpD,aAAa,GAAG,2BAAY,CAAC,KAAK,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;IACnE,gBAAgB;IAChB,OAAO,aAA+B,CAAC;AACzC,CAAC;AApCD,4CAoCC;AAED;;;;;GAKG;AACI,KAAK,UAAU,gBAAgB,CACpC,UAA0B,EAC1B,cAAmC;IAEnC,mEAAmE;IACnE,UAAU,CAAC,IAAI,GAAG,MAAM,qBAAa,CACnC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EACpD,cAAc,CACf,CAAC;IACF,8BAA8B;IAC9B,MAAM,KAAK,GAAG,MAAM,iBAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IAC5D,4BAA4B;IAC5B,MAAM,MAAM,GAAG,IAAI,+BAAc,CAA0B,+BAAc,EAAE,CAAC,CAAC;IAC7E,0EAA0E;IAC1E,wEAAwE;IACxE,sDAAsD;IACtD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC9D,0BAA0B;IAC1B,MAAM,YAAY,GAAG,MAAM,oBAAW,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACtE,kDAAkD;IAClD,IAAI,iBAAiB,GAAG,MAAM,CAAC,aAAa,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACvE,iBAAiB,GAAG,2BAAY,CAAC,KAAK,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC;IAC3E,qEAAqE;IACrE,uCAAuC;IACvC,OAAO,iBAAmC,CAAC;AAC7C,CAAC;AAzBD,4CAyBC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAC7B,UAAkB,EAClB,cAA+B;IAE/B,IAAI,OAAO,CAAC;IACZ,IAAI,cAAM,CAAC,UAAU,CAAC,EAAE;QACtB,iBAAiB;QACjB,OAAO,GAAG,4BAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;KAC/C;SAAM;QACL,OAAO,GAAG,qBAAa,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;KACrD;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,OAAO,uBAAuB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC;AAfD,0CAeC;AAED;;;;;GAKG;AACI,KAAK,UAAU,gBAAgB,CACpC,EAAU,EACV,cAAmC;IAEnC,MAAM,EAAE,GAAG,gCAAK,cAAc,GAAK,EAAE,EAAE,EAAE,CAAsB,CAAC;IAChE,MAAM,+BAAU,CAAC,EAAE,CAAC,CAAC;IACrB,OAAO;AACT,CAAC;AAPD,4CAOC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,uBAAuB,CAC3C,IAAW,EACX,cAA+B;IAE/B,MAAM,KAAK,GAAG,MAAM,2BAAkB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,IAAI,+BAAc,CAA0B,+BAAc,EAAE,CAAC,CAAC;IAC7E,MAAM,GAAG,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,CAAmB,CAAC;IAC9D,OAAO,2BAAY,CAAC,KAAK,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;AAClD,CAAC;AARD,0DAQC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,4BAA4B,CAChD,IAAW,EACX,OAAiB,EACjB,cAAkC;IAElC,6BAA6B;IAC7B,MAAM,MAAM,GAAqB;QAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,KAAK;QAChB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW;QACzC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACnC,iBAAiB,EAAE,cAAc;QACjC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpC,iBAAiB,EAAE,eAAe;QAClC,MAAM,EAAE,iBAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,KAAK,EAAE;YACL,IAAI,EAAE,iBAAiB;YACvB,YAAY,EAAE,iBAAiB;YAC/B,SAAS,EAAE,iBAAiB;SAC7B;KACF,CAAC;IAEF,mBAAmB;IACnB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,iBAAiB;IACjB,OAAO,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,cAAM,CAAC,CAAC;IACnD,qDAAqD;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,2BAAY,CAAC,CAAC;IACxC,+CAA+C;IAC/C,MAAM,WAAW,GAAG,aAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,cAAM,CAAC,CAAC;IAC9D,wBAAwB;IACxB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,WAAW,CAAC,MAAM,EAAE;QACtB,mEAAmE;QACnE,QAAQ,GAAG,MAAM,mCAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;KAC1E;IACD,yCAAyC;IACzC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,eAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,eAAe;IACf,8CAA8C;IAC9C,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,2BAAmB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACnE,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,sBAAc,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IAC9D,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,6BAAiB,CAC3C,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,EAAE,EACT,IAAI,CAAC,YAAY,CAClB,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAvDD,oEAuDC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InitiativePermissionPolicies = exports.InitiativePermissions = exports.InitiativeCapabilityPermissions = exports.InitiativeDefaultCapabilities = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Default capabilities for a Initiative. If not listed here, the capability will not be available
|
|
6
|
+
* This hash is combined with the capabilities hash stored in the item data. Regardless of what
|
|
7
|
+
* properties are defined in the item data, only the capabilities defined here will be available
|
|
8
|
+
* @private
|
|
9
|
+
*/
|
|
10
|
+
exports.InitiativeDefaultCapabilities = {
|
|
11
|
+
overview: true,
|
|
12
|
+
details: true,
|
|
13
|
+
settings: true,
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* List of all the Initiative Capability Permissions
|
|
17
|
+
* These are considered Hub Business Rules and are not intended
|
|
18
|
+
* to be modified by consumers
|
|
19
|
+
* @private
|
|
20
|
+
*/
|
|
21
|
+
exports.InitiativeCapabilityPermissions = [
|
|
22
|
+
{
|
|
23
|
+
entity: "initiative",
|
|
24
|
+
capability: "overview",
|
|
25
|
+
permissions: ["hub:initiative:view"],
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
entity: "initiative",
|
|
29
|
+
capability: "details",
|
|
30
|
+
permissions: ["hub:initiative:edit"],
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
entity: "initiative",
|
|
34
|
+
capability: "settings",
|
|
35
|
+
permissions: ["hub:initiative:edit"],
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
/**
|
|
39
|
+
* Initiative Permission Policies
|
|
40
|
+
* These define the requirements any user must meet to perform related actions
|
|
41
|
+
* @private
|
|
42
|
+
*/
|
|
43
|
+
exports.InitiativePermissions = [
|
|
44
|
+
"hub:initiative:create",
|
|
45
|
+
"hub:initiative:delete",
|
|
46
|
+
"hub:initiative:edit",
|
|
47
|
+
"hub:initiative:view",
|
|
48
|
+
];
|
|
49
|
+
/**
|
|
50
|
+
* Initiative permission policies
|
|
51
|
+
* @private
|
|
52
|
+
*/
|
|
53
|
+
exports.InitiativePermissionPolicies = [
|
|
54
|
+
{
|
|
55
|
+
permission: "hub:initiative:create",
|
|
56
|
+
subsystems: ["projects"],
|
|
57
|
+
authenticated: true,
|
|
58
|
+
privileges: ["portal:user:createItem"],
|
|
59
|
+
licenses: ["hub-premium"],
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
permission: "hub:initiative:view",
|
|
63
|
+
subsystems: ["projects"],
|
|
64
|
+
authenticated: false,
|
|
65
|
+
licenses: ["hub-premium"],
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
permission: "hub:initiative:edit",
|
|
69
|
+
authenticated: true,
|
|
70
|
+
subsystems: ["projects"],
|
|
71
|
+
entityEdit: true,
|
|
72
|
+
licenses: ["hub-premium"],
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
permission: "hub:initiative:delete",
|
|
76
|
+
authenticated: true,
|
|
77
|
+
subsystems: ["projects"],
|
|
78
|
+
entityOwner: true,
|
|
79
|
+
licenses: ["hub-premium"],
|
|
80
|
+
},
|
|
81
|
+
];
|
|
82
|
+
//# sourceMappingURL=InitiativeBusinessRules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InitiativeBusinessRules.js","sourceRoot":"","sources":["../../../../src/initiatives/_internal/InitiativeBusinessRules.ts"],"names":[],"mappings":";;;AAMA;;;;;GAKG;AACU,QAAA,6BAA6B,GAAuB;IAC/D,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF;;;;;GAKG;AACU,QAAA,+BAA+B,GAA4B;IACtE;QACE,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,CAAC,qBAAqB,CAAC;KACrC;IACD;QACE,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,qBAAqB,CAAC;KACrC;IACD;QACE,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,CAAC,qBAAqB,CAAC;KACrC;CACF,CAAC;AAEF;;;;GAIG;AACU,QAAA,qBAAqB,GAAG;IACnC,uBAAuB;IACvB,uBAAuB;IACvB,qBAAqB;IACrB,qBAAqB;CACb,CAAC;AAEX;;;GAGG;AACU,QAAA,4BAA4B,GAAwB;IAC/D;QACE,UAAU,EAAE,uBAAuB;QACnC,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD;QACE,UAAU,EAAE,qBAAqB;QACjC,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD;QACE,UAAU,EAAE,qBAAqB;QACjC,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD;QACE,UAAU,EAAE,uBAAuB;QACnC,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;CACF,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.computeProps = void 0;
|
|
4
|
+
const resources_1 = require("../../resources");
|
|
5
|
+
const capabilities_1 = require("../../capabilities");
|
|
6
|
+
const InitiativeBusinessRules_1 = require("./InitiativeBusinessRules");
|
|
7
|
+
/**
|
|
8
|
+
* Given a model and an Initiative, set various computed properties that can't be directly mapped
|
|
9
|
+
* @private
|
|
10
|
+
* @param model
|
|
11
|
+
* @param initiative
|
|
12
|
+
* @param requestOptions
|
|
13
|
+
* @returns
|
|
14
|
+
*/
|
|
15
|
+
function computeProps(model, initiative, requestOptions) {
|
|
16
|
+
var _a;
|
|
17
|
+
let token;
|
|
18
|
+
if (requestOptions.authentication) {
|
|
19
|
+
const session = requestOptions.authentication;
|
|
20
|
+
token = session.token;
|
|
21
|
+
}
|
|
22
|
+
// thumbnail url
|
|
23
|
+
initiative.thumbnailUrl = resources_1.getItemThumbnailUrl(model.item, requestOptions, token);
|
|
24
|
+
// Handle Dates
|
|
25
|
+
initiative.createdDate = new Date(model.item.created);
|
|
26
|
+
initiative.createdDateSource = "item.created";
|
|
27
|
+
initiative.updatedDate = new Date(model.item.modified);
|
|
28
|
+
initiative.updatedDateSource = "item.modified";
|
|
29
|
+
// Handle capabilities
|
|
30
|
+
initiative.capabilities = capabilities_1.processEntityCapabilities(((_a = model.data.settings) === null || _a === void 0 ? void 0 : _a.capabilities) || {}, InitiativeBusinessRules_1.InitiativeDefaultCapabilities);
|
|
31
|
+
// cast b/c this takes a partial but returns a full object
|
|
32
|
+
return initiative;
|
|
33
|
+
}
|
|
34
|
+
exports.computeProps = computeProps;
|
|
35
|
+
//# sourceMappingURL=computeProps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeProps.js","sourceRoot":"","sources":["../../../../src/initiatives/_internal/computeProps.ts"],"names":[],"mappings":";;;AAEA,+CAAsD;AACtD,qDAA+D;AAE/D,uEAA0E;AAG1E;;;;;;;GAOG;AACH,SAAgB,YAAY,CAC1B,KAAa,EACb,UAAmC,EACnC,cAA+B;;IAE/B,IAAI,KAAa,CAAC;IAClB,IAAI,cAAc,CAAC,cAAc,EAAE;QACjC,MAAM,OAAO,GAAgB,cAAc,CAAC,cAA6B,CAAC;QAC1E,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;KACvB;IACD,gBAAgB;IAChB,UAAU,CAAC,YAAY,GAAG,+BAAmB,CAC3C,KAAK,CAAC,IAAI,EACV,cAAc,EACd,KAAK,CACN,CAAC;IAEF,eAAe;IACf,UAAU,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtD,UAAU,CAAC,iBAAiB,GAAG,cAAc,CAAC;IAC9C,UAAU,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvD,UAAU,CAAC,iBAAiB,GAAG,eAAe,CAAC;IAE/C,sBAAsB;IACtB,UAAU,CAAC,YAAY,GAAG,wCAAyB,CACjD,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,YAAY,KAAI,EAAE,EACvC,uDAA6B,CAC9B,CAAC;IAEF,0DAA0D;IAC1D,OAAO,UAA4B,CAAC;AACtC,CAAC;AA/BD,oCA+BC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPropertyMap = void 0;
|
|
4
|
+
const getBasePropertyMap_1 = require("../../core/_internal/getBasePropertyMap");
|
|
5
|
+
/**
|
|
6
|
+
* Returns an Array of IPropertyMap objects
|
|
7
|
+
* that define the projection of properties from a IModel to an IHubProject
|
|
8
|
+
* @returns
|
|
9
|
+
* @private
|
|
10
|
+
*/
|
|
11
|
+
function getPropertyMap() {
|
|
12
|
+
const map = getBasePropertyMap_1.getBasePropertyMap();
|
|
13
|
+
// Type specific mappings
|
|
14
|
+
map.push({ objectKey: "status", modelKey: "data.status" });
|
|
15
|
+
map.push({ objectKey: "catalog", modelKey: "data.catalog" });
|
|
16
|
+
map.push({ objectKey: "permissions", modelKey: "data.permissions" });
|
|
17
|
+
map.push({
|
|
18
|
+
objectKey: "capabilities",
|
|
19
|
+
modelKey: "data.settings.capabilities",
|
|
20
|
+
});
|
|
21
|
+
map.push({ objectKey: "contacts", modelKey: "data.contacts" });
|
|
22
|
+
map.push({ objectKey: "timeline", modelKey: "data.timeline" });
|
|
23
|
+
return map;
|
|
24
|
+
}
|
|
25
|
+
exports.getPropertyMap = getPropertyMap;
|
|
26
|
+
//# sourceMappingURL=getPropertyMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPropertyMap.js","sourceRoot":"","sources":["../../../../src/initiatives/_internal/getPropertyMap.ts"],"names":[],"mappings":";;;AACA,gFAA6E;AAE7E;;;;;GAKG;AAEH,SAAgB,cAAc;IAC5B,MAAM,GAAG,GAAG,uCAAkB,EAAE,CAAC;IAEjC,yBAAyB;IACzB,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;IAC3D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACrE,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,cAAc;QACzB,QAAQ,EAAE,4BAA4B;KACvC,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;IAC/D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;IAE/D,OAAO,GAAG,CAAC;AACb,CAAC;AAfD,wCAeC"}
|