@esri/hub-common 13.25.2 → 13.27.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/ArcGISContextManager.js +2 -0
- package/dist/esm/ArcGISContextManager.js.map +1 -1
- package/dist/esm/capabilities/getWorkspaceCapabilities.js +2 -0
- package/dist/esm/capabilities/getWorkspaceCapabilities.js.map +1 -1
- package/dist/esm/capabilities/types.js +1 -0
- package/dist/esm/capabilities/types.js.map +1 -1
- package/dist/esm/core/types/HubEntity.js +5 -0
- package/dist/esm/core/types/HubEntity.js.map +1 -1
- package/dist/esm/core/types/HubEntityType.js +1 -0
- package/dist/esm/core/types/HubEntityType.js.map +1 -1
- package/dist/esm/core/types/IHubGroup.js +1 -0
- package/dist/esm/core/types/IHubGroup.js.map +1 -0
- package/dist/esm/core/types/ISystemStatus.js +1 -0
- package/dist/esm/core/types/ISystemStatus.js.map +1 -1
- package/dist/esm/groups/HubGroup.js +178 -0
- package/dist/esm/groups/HubGroup.js.map +1 -0
- package/dist/esm/groups/HubGroups.js +100 -1
- package/dist/esm/groups/HubGroups.js.map +1 -1
- package/dist/esm/groups/_internal/GroupBusinessRules.js +88 -0
- package/dist/esm/groups/_internal/GroupBusinessRules.js.map +1 -0
- package/dist/esm/groups/_internal/computeProps.js +37 -0
- package/dist/esm/groups/_internal/computeProps.js.map +1 -0
- package/dist/esm/groups/_internal/getPropertyMap.js +39 -0
- package/dist/esm/groups/_internal/getPropertyMap.js.map +1 -0
- package/dist/esm/groups/defaults.js +21 -0
- package/dist/esm/groups/defaults.js.map +1 -0
- package/dist/esm/groups/index.js +1 -0
- package/dist/esm/groups/index.js.map +1 -1
- package/dist/esm/permissions/HubPermissionPolicies.js +2 -0
- package/dist/esm/permissions/HubPermissionPolicies.js.map +1 -1
- package/dist/esm/permissions/types/Permission.js +2 -0
- package/dist/esm/permissions/types/Permission.js.map +1 -1
- package/dist/esm/projects/_internal/getPropertyMap.js +1 -5
- package/dist/esm/projects/_internal/getPropertyMap.js.map +1 -1
- package/dist/node/ArcGISContextManager.js +2 -0
- package/dist/node/ArcGISContextManager.js.map +1 -1
- package/dist/node/capabilities/getWorkspaceCapabilities.js +2 -0
- package/dist/node/capabilities/getWorkspaceCapabilities.js.map +1 -1
- package/dist/node/capabilities/types.js +1 -0
- package/dist/node/capabilities/types.js.map +1 -1
- package/dist/node/core/types/HubEntity.js +5 -0
- package/dist/node/core/types/HubEntity.js.map +1 -1
- package/dist/node/core/types/HubEntityType.js +1 -0
- package/dist/node/core/types/HubEntityType.js.map +1 -1
- package/dist/node/core/types/IHubGroup.js +3 -0
- package/dist/node/core/types/IHubGroup.js.map +1 -0
- package/dist/node/core/types/ISystemStatus.js +1 -0
- package/dist/node/core/types/ISystemStatus.js.map +1 -1
- package/dist/node/groups/HubGroup.js +182 -0
- package/dist/node/groups/HubGroup.js.map +1 -0
- package/dist/node/groups/HubGroups.js +104 -1
- package/dist/node/groups/HubGroups.js.map +1 -1
- package/dist/node/groups/_internal/GroupBusinessRules.js +91 -0
- package/dist/node/groups/_internal/GroupBusinessRules.js.map +1 -0
- package/dist/node/groups/_internal/computeProps.js +41 -0
- package/dist/node/groups/_internal/computeProps.js.map +1 -0
- package/dist/node/groups/_internal/getPropertyMap.js +43 -0
- package/dist/node/groups/_internal/getPropertyMap.js.map +1 -0
- package/dist/node/groups/defaults.js +24 -0
- package/dist/node/groups/defaults.js.map +1 -0
- package/dist/node/groups/index.js +1 -0
- package/dist/node/groups/index.js.map +1 -1
- package/dist/node/permissions/HubPermissionPolicies.js +2 -0
- package/dist/node/permissions/HubPermissionPolicies.js.map +1 -1
- package/dist/node/permissions/types/Permission.js +2 -0
- package/dist/node/permissions/types/Permission.js.map +1 -1
- package/dist/node/projects/_internal/getPropertyMap.js +1 -5
- package/dist/node/projects/_internal/getPropertyMap.js.map +1 -1
- package/dist/types/capabilities/types.d.ts +1 -1
- package/dist/types/core/types/HubEntityType.d.ts +1 -1
- package/dist/types/core/types/IHubGroup.d.ts +87 -0
- package/dist/types/core/types/ISystemStatus.d.ts +1 -1
- package/dist/types/core/types/types.d.ts +20 -1
- package/dist/types/discussions/api/types.d.ts +18 -0
- package/dist/types/groups/HubGroup.d.ts +95 -0
- package/dist/types/groups/HubGroups.d.ts +35 -0
- package/dist/types/groups/_internal/GroupBusinessRules.d.ts +27 -0
- package/dist/types/groups/_internal/computeProps.d.ts +12 -0
- package/dist/types/groups/_internal/getPropertyMap.d.ts +8 -0
- package/dist/types/groups/defaults.d.ts +11 -0
- package/dist/types/groups/index.d.ts +1 -0
- package/dist/types/permissions/types/Permission.d.ts +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GroupPermissionPolicies = exports.GroupPermissions = exports.GroupCapabilityPermissions = exports.GroupDefaultCapabilities = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Default capabilities for a Group. If not listed here, the capability will not be available
|
|
6
|
+
* NOTE: We do not use the group capabilities right now as we do not
|
|
7
|
+
* have a data store for it yet, leaving them here for the future
|
|
8
|
+
* @private
|
|
9
|
+
*/
|
|
10
|
+
exports.GroupDefaultCapabilities = {
|
|
11
|
+
details: true,
|
|
12
|
+
settings: true,
|
|
13
|
+
members: true,
|
|
14
|
+
content: true,
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* List of all the Group Capability Permissions
|
|
18
|
+
* These are considered Hub Business Rules and are not intended
|
|
19
|
+
* to be modified by consumers
|
|
20
|
+
* @private
|
|
21
|
+
*/
|
|
22
|
+
exports.GroupCapabilityPermissions = [
|
|
23
|
+
{
|
|
24
|
+
entity: "group",
|
|
25
|
+
capability: "details",
|
|
26
|
+
permissions: ["hub:group:edit"],
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
entity: "group",
|
|
30
|
+
capability: "settings",
|
|
31
|
+
permissions: ["hub:group:owner"],
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
entity: "group",
|
|
35
|
+
capability: "members",
|
|
36
|
+
permissions: ["hub:group:view"],
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
entity: "group",
|
|
40
|
+
capability: "content",
|
|
41
|
+
permissions: ["hub:group:edit"],
|
|
42
|
+
},
|
|
43
|
+
];
|
|
44
|
+
/**
|
|
45
|
+
* Group Permission Policies
|
|
46
|
+
* These define the requirements any user must meet to perform related actions
|
|
47
|
+
* @private
|
|
48
|
+
*/
|
|
49
|
+
exports.GroupPermissions = [
|
|
50
|
+
"hub:group:create",
|
|
51
|
+
"hub:group:delete",
|
|
52
|
+
"hub:group:edit",
|
|
53
|
+
"hub:group:view",
|
|
54
|
+
"hub:group:owner",
|
|
55
|
+
];
|
|
56
|
+
/**
|
|
57
|
+
* Group permission policies
|
|
58
|
+
* @private
|
|
59
|
+
*/
|
|
60
|
+
exports.GroupPermissionPolicies = [
|
|
61
|
+
{
|
|
62
|
+
permission: "hub:group:create",
|
|
63
|
+
subsystems: ["groups"],
|
|
64
|
+
authenticated: true,
|
|
65
|
+
privileges: ["portal:user:createGroup"],
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
permission: "hub:group:view",
|
|
69
|
+
subsystems: ["groups"],
|
|
70
|
+
authenticated: false,
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
permission: "hub:group:edit",
|
|
74
|
+
authenticated: true,
|
|
75
|
+
subsystems: ["groups"],
|
|
76
|
+
entityEdit: true,
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
permission: "hub:group:delete",
|
|
80
|
+
authenticated: true,
|
|
81
|
+
subsystems: ["groups"],
|
|
82
|
+
entityOwner: true,
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
permission: "hub:group:owner",
|
|
86
|
+
authenticated: true,
|
|
87
|
+
subsystems: ["groups"],
|
|
88
|
+
entityOwner: true,
|
|
89
|
+
},
|
|
90
|
+
];
|
|
91
|
+
//# sourceMappingURL=GroupBusinessRules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroupBusinessRules.js","sourceRoot":"","sources":["../../../../src/groups/_internal/GroupBusinessRules.ts"],"names":[],"mappings":";;;AAGA;;;;;GAKG;AACU,QAAA,wBAAwB,GAAuB;IAC1D,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;CACd,CAAC;AAEF;;;;;GAKG;AACU,QAAA,0BAA0B,GAA4B;IACjE;QACE,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,gBAAgB,CAAC;KAChC;IACD;QACE,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,CAAC,iBAAiB,CAAC;KACjC;IACD;QACE,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,gBAAgB,CAAC;KAChC;IACD;QACE,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,CAAC,gBAAgB,CAAC;KAChC;CACF,CAAC;AAEF;;;;GAIG;AACU,QAAA,gBAAgB,GAAG;IAC9B,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;CACT,CAAC;AAEX;;;GAGG;AACU,QAAA,uBAAuB,GAAwB;IAC1D;QACE,UAAU,EAAE,kBAAkB;QAC9B,UAAU,EAAE,CAAC,QAAQ,CAAC;QACtB,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,yBAAyB,CAAC;KACxC;IACD;QACE,UAAU,EAAE,gBAAgB;QAC5B,UAAU,EAAE,CAAC,QAAQ,CAAC;QACtB,aAAa,EAAE,KAAK;KACrB;IACD;QACE,UAAU,EAAE,gBAAgB;QAC5B,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,QAAQ,CAAC;QACtB,UAAU,EAAE,IAAI;KACjB;IACD;QACE,UAAU,EAAE,kBAAkB;QAC9B,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,QAAQ,CAAC;QACtB,WAAW,EAAE,IAAI;KAClB;IACD;QACE,UAAU,EAAE,iBAAiB;QAC7B,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,QAAQ,CAAC;QACtB,WAAW,EAAE,IAAI;KAClB;CACF,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.computeProps = void 0;
|
|
4
|
+
const discussions_1 = require("../../discussions");
|
|
5
|
+
const search_1 = require("../../search");
|
|
6
|
+
/**
|
|
7
|
+
* Given a model and a group, set various computed properties that can't be directly mapped
|
|
8
|
+
* @private
|
|
9
|
+
* @param group
|
|
10
|
+
* @param hubGroup
|
|
11
|
+
* @param requestOptions
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
function computeProps(group, hubGroup, requestOptions) {
|
|
15
|
+
let token;
|
|
16
|
+
if (requestOptions.authentication) {
|
|
17
|
+
const session = requestOptions.authentication;
|
|
18
|
+
token = session.token;
|
|
19
|
+
}
|
|
20
|
+
// thumbnail url
|
|
21
|
+
hubGroup.thumbnailUrl = search_1.getGroupThumbnailUrl(requestOptions.portal, group, token);
|
|
22
|
+
// Handle Dates
|
|
23
|
+
hubGroup.createdDate = new Date(group.created);
|
|
24
|
+
hubGroup.createdDateSource = "group.created";
|
|
25
|
+
hubGroup.updatedDate = new Date(group.modified);
|
|
26
|
+
hubGroup.updatedDateSource = "group.modified";
|
|
27
|
+
hubGroup.type = "Group";
|
|
28
|
+
hubGroup.isDiscussable = discussions_1.isDiscussable(group);
|
|
29
|
+
hubGroup.isSharedUpdate = (group.capabilities || []).includes("updateitemcontrol");
|
|
30
|
+
hubGroup.membershipAccess = "anyone";
|
|
31
|
+
if (group.membershipAccess === "org") {
|
|
32
|
+
hubGroup.membershipAccess = "organization";
|
|
33
|
+
}
|
|
34
|
+
if (group.membershipAccess === "collaboration") {
|
|
35
|
+
hubGroup.membershipAccess = "collaborators";
|
|
36
|
+
}
|
|
37
|
+
// cast b/c this takes a partial but returns a full group
|
|
38
|
+
return hubGroup;
|
|
39
|
+
}
|
|
40
|
+
exports.computeProps = computeProps;
|
|
41
|
+
//# sourceMappingURL=computeProps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeProps.js","sourceRoot":"","sources":["../../../../src/groups/_internal/computeProps.ts"],"names":[],"mappings":";;;AAKA,mDAAkD;AAClD,yCAAoD;AAGpD;;;;;;;GAOG;AACH,SAAgB,YAAY,CAC1B,KAAa,EACb,QAA4B,EAC5B,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,QAAQ,CAAC,YAAY,GAAG,6BAAoB,CAC1C,cAAc,CAAC,MAAM,EACrB,KAAK,EACL,KAAK,CACN,CAAC;IAEF,eAAe;IACf,QAAQ,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,QAAQ,CAAC,iBAAiB,GAAG,eAAe,CAAC;IAC7C,QAAQ,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChD,QAAQ,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAE9C,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC;IAExB,QAAQ,CAAC,aAAa,GAAG,2BAAa,CAAC,KAAK,CAAC,CAAC;IAE9C,QAAQ,CAAC,cAAc,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,QAAQ,CAC3D,mBAAmB,CACpB,CAAC;IAEF,QAAQ,CAAC,gBAAgB,GAAG,QAAQ,CAAC;IACrC,IAAI,KAAK,CAAC,gBAAgB,KAAK,KAAK,EAAE;QACpC,QAAQ,CAAC,gBAAgB,GAAG,cAAc,CAAC;KAC5C;IACD,IAAI,KAAK,CAAC,gBAAgB,KAAK,eAAe,EAAE;QAC9C,QAAQ,CAAC,gBAAgB,GAAG,eAAe,CAAC;KAC7C;IAED,yDAAyD;IACzD,OAAO,QAAqB,CAAC;AAC/B,CAAC;AAzCD,oCAyCC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPropertyMap = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Returns an Array of IPropertyMap objects
|
|
6
|
+
* that define the projection of properties from a IGroup to an IHubGroup
|
|
7
|
+
* @returns
|
|
8
|
+
* @private
|
|
9
|
+
*/
|
|
10
|
+
function getPropertyMap() {
|
|
11
|
+
const map = [];
|
|
12
|
+
/**
|
|
13
|
+
* group-specific mappings
|
|
14
|
+
*/
|
|
15
|
+
map.push({ entityKey: "name", storeKey: "title" });
|
|
16
|
+
map.push({ entityKey: "summary", storeKey: "snippet" });
|
|
17
|
+
map.push({ entityKey: "permissions", storeKey: "properties.permissions" });
|
|
18
|
+
const groupProps = [
|
|
19
|
+
"access",
|
|
20
|
+
"autoJoin",
|
|
21
|
+
"description",
|
|
22
|
+
"id",
|
|
23
|
+
"isInvitationOnly",
|
|
24
|
+
"isDiscussable",
|
|
25
|
+
"isReadOnly",
|
|
26
|
+
"isViewOnly",
|
|
27
|
+
"membershipAccess",
|
|
28
|
+
"owner",
|
|
29
|
+
"protected",
|
|
30
|
+
"sortField",
|
|
31
|
+
"sortOrder",
|
|
32
|
+
"tags",
|
|
33
|
+
"thumbnail",
|
|
34
|
+
"thumbnailUrl",
|
|
35
|
+
"userMembership",
|
|
36
|
+
];
|
|
37
|
+
groupProps.forEach((entry) => {
|
|
38
|
+
map.push({ entityKey: entry, storeKey: entry });
|
|
39
|
+
});
|
|
40
|
+
return map;
|
|
41
|
+
}
|
|
42
|
+
exports.getPropertyMap = getPropertyMap;
|
|
43
|
+
//# sourceMappingURL=getPropertyMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPropertyMap.js","sourceRoot":"","sources":["../../../../src/groups/_internal/getPropertyMap.ts"],"names":[],"mappings":";;;AAEA;;;;;GAKG;AAEH,SAAgB,cAAc;IAC5B,MAAM,GAAG,GAAmB,EAAE,CAAC;IAE/B;;OAEG;IACH,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IACnD,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;IACxD,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC,CAAC;IAE3E,MAAM,UAAU,GAAG;QACjB,QAAQ;QACR,UAAU;QACV,aAAa;QACb,IAAI;QACJ,kBAAkB;QAClB,eAAe;QACf,YAAY;QACZ,YAAY;QACZ,kBAAkB;QAClB,OAAO;QACP,WAAW;QACX,WAAW;QACX,WAAW;QACX,MAAM;QACN,WAAW;QACX,cAAc;QACd,gBAAgB;KACjB,CAAC;IACF,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAlCD,wCAkCC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_GROUP_MODEL = exports.DEFAULT_GROUP = exports.HUB_GROUP_TYPE = void 0;
|
|
4
|
+
exports.HUB_GROUP_TYPE = "Hub Group";
|
|
5
|
+
/**
|
|
6
|
+
* Default values of a IHubGroup
|
|
7
|
+
*/
|
|
8
|
+
exports.DEFAULT_GROUP = {
|
|
9
|
+
name: "No title provided",
|
|
10
|
+
access: "private",
|
|
11
|
+
permissions: [],
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Default values for a new HubGroup Model
|
|
15
|
+
*/
|
|
16
|
+
exports.DEFAULT_GROUP_MODEL = {
|
|
17
|
+
type: exports.HUB_GROUP_TYPE,
|
|
18
|
+
title: "No Title Provided",
|
|
19
|
+
description: "",
|
|
20
|
+
access: "",
|
|
21
|
+
snippet: "",
|
|
22
|
+
tags: [],
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/groups/defaults.ts"],"names":[],"mappings":";;;AAGa,QAAA,cAAc,GAAG,WAAW,CAAC;AAE1C;;GAEG;AACU,QAAA,aAAa,GAAuB;IAC/C,IAAI,EAAE,mBAAmB;IACzB,MAAM,EAAE,SAAS;IACjB,WAAW,EAAE,EAAE;CAChB,CAAC;AAEF;;GAEG;AACU,QAAA,mBAAmB,GAAW;IACzC,IAAI,EAAE,sBAAc;IACpB,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EAAE,EAAE;IACf,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,EAAE;CACY,CAAC"}
|
|
@@ -5,4 +5,5 @@ tslib_1.__exportStar(require("./_unprotect-and-remove-group"), exports);
|
|
|
5
5
|
tslib_1.__exportStar(require("./add-users-workflow"), exports);
|
|
6
6
|
tslib_1.__exportStar(require("./types"), exports);
|
|
7
7
|
tslib_1.__exportStar(require("./HubGroups"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./HubGroup"), exports);
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/groups/index.ts"],"names":[],"mappings":";;;AAAA,wEAA8C;AAC9C,+DAAqC;AACrC,kDAAwB;AACxB,sDAA4B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/groups/index.ts"],"names":[],"mappings":";;;AAAA,wEAA8C;AAC9C,+DAAqC;AACrC,kDAAwB;AACxB,sDAA4B;AAC5B,qDAA2B"}
|
|
@@ -6,6 +6,7 @@ const ProjectBusinessRules_1 = require("../projects/_internal/ProjectBusinessRul
|
|
|
6
6
|
const SiteBusinessRules_1 = require("../sites/_internal/SiteBusinessRules");
|
|
7
7
|
const DiscussionBusinessRules_1 = require("../discussions/_internal/DiscussionBusinessRules");
|
|
8
8
|
const ContentBusinessRules_1 = require("../content/_internal/ContentBusinessRules");
|
|
9
|
+
const GroupBusinessRules_1 = require("../groups/_internal/GroupBusinessRules");
|
|
9
10
|
const PageBusinessRules_1 = require("../pages/_internal/PageBusinessRules");
|
|
10
11
|
// Examples of possible Permission Policies
|
|
11
12
|
// const DiscussionPermissionPolicies: IPermissionPolicy[] = [
|
|
@@ -69,6 +70,7 @@ exports.HubPermissionsPolicies = [
|
|
|
69
70
|
...InitiativeBusinessRules_1.InitiativePermissionPolicies,
|
|
70
71
|
...DiscussionBusinessRules_1.DiscussionPermissionPolicies,
|
|
71
72
|
...ContentBusinessRules_1.ContentPermissionPolicies,
|
|
73
|
+
...GroupBusinessRules_1.GroupPermissionPolicies,
|
|
72
74
|
...PageBusinessRules_1.PagePermissionPolicies,
|
|
73
75
|
];
|
|
74
76
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HubPermissionPolicies.js","sourceRoot":"","sources":["../../../src/permissions/HubPermissionPolicies.ts"],"names":[],"mappings":";;;AAAA,8FAAgG;AAChG,qFAAuF;AACvF,4EAA+E;AAC/E,8FAAgG;AAChG,oFAAsF;AAGtF,4EAA8E;AAE9E,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;AACU,QAAA,sBAAsB,GAAwB;IACzD,GAAG,2CAAuB;IAC1B,GAAG,gDAAyB;IAC5B,GAAG,sDAA4B;IAC/B,GAAG,sDAA4B;IAC/B,GAAG,gDAAyB;IAC5B,GAAG,0CAAsB;CAC1B,CAAC;AAEF;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,UAAsB;IACxD,OAAO,8BAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;AACzE,CAAC;AAFD,kDAEC"}
|
|
1
|
+
{"version":3,"file":"HubPermissionPolicies.js","sourceRoot":"","sources":["../../../src/permissions/HubPermissionPolicies.ts"],"names":[],"mappings":";;;AAAA,8FAAgG;AAChG,qFAAuF;AACvF,4EAA+E;AAC/E,8FAAgG;AAChG,oFAAsF;AAGtF,+EAAiF;AACjF,4EAA8E;AAE9E,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;AACU,QAAA,sBAAsB,GAAwB;IACzD,GAAG,2CAAuB;IAC1B,GAAG,gDAAyB;IAC5B,GAAG,sDAA4B;IAC/B,GAAG,sDAA4B;IAC/B,GAAG,gDAAyB;IAC5B,GAAG,4CAAuB;IAC1B,GAAG,0CAAsB;CAC1B,CAAC;AAEF;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,UAAsB;IACxD,OAAO,8BAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;AACzE,CAAC;AAFD,kDAEC"}
|
|
@@ -6,6 +6,7 @@ const SiteBusinessRules_1 = require("../../sites/_internal/SiteBusinessRules");
|
|
|
6
6
|
const InitiativeBusinessRules_1 = require("../../initiatives/_internal/InitiativeBusinessRules");
|
|
7
7
|
const DiscussionBusinessRules_1 = require("../../discussions/_internal/DiscussionBusinessRules");
|
|
8
8
|
const ContentBusinessRules_1 = require("../../content/_internal/ContentBusinessRules");
|
|
9
|
+
const GroupBusinessRules_1 = require("../../groups/_internal/GroupBusinessRules");
|
|
9
10
|
const PageBusinessRules_1 = require("../../pages/_internal/PageBusinessRules");
|
|
10
11
|
/**
|
|
11
12
|
* Defines the values for Permissions
|
|
@@ -18,6 +19,7 @@ const validPermissions = [
|
|
|
18
19
|
...InitiativeBusinessRules_1.InitiativePermissions,
|
|
19
20
|
...DiscussionBusinessRules_1.DiscussionPermissions,
|
|
20
21
|
...ContentBusinessRules_1.ContentPermissions,
|
|
22
|
+
...GroupBusinessRules_1.GroupPermissions,
|
|
21
23
|
...PageBusinessRules_1.PagePermissions,
|
|
22
24
|
];
|
|
23
25
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Permission.js","sourceRoot":"","sources":["../../../../src/permissions/types/Permission.ts"],"names":[],"mappings":";;;AAAA,wFAAmF;AACnF,+EAA0E;AAC1E,iGAA4F;AAC5F,iGAA4F;AAC5F,uFAAkF;AAClF,+EAA0E;AAE1E;;;;GAIG;AACH,MAAM,gBAAgB,GAAG;IACvB,GAAG,mCAAe;IAClB,GAAG,yCAAkB;IACrB,GAAG,+CAAqB;IACxB,GAAG,+CAAqB;IACxB,GAAG,yCAAkB;IACrB,GAAG,mCAAe;CACV,CAAC;AAOX;;;;GAIG;AACH,SAAgB,YAAY,CAAC,eAAuB;IAClD,OAAO,gBAAgB,CAAC,QAAQ,CAAC,eAA6B,CAAC,CAAC;AAClE,CAAC;AAFD,oCAEC"}
|
|
1
|
+
{"version":3,"file":"Permission.js","sourceRoot":"","sources":["../../../../src/permissions/types/Permission.ts"],"names":[],"mappings":";;;AAAA,wFAAmF;AACnF,+EAA0E;AAC1E,iGAA4F;AAC5F,iGAA4F;AAC5F,uFAAkF;AAClF,kFAA6E;AAC7E,+EAA0E;AAE1E;;;;GAIG;AACH,MAAM,gBAAgB,GAAG;IACvB,GAAG,mCAAe;IAClB,GAAG,yCAAkB;IACrB,GAAG,+CAAqB;IACxB,GAAG,+CAAqB;IACxB,GAAG,yCAAkB;IACrB,GAAG,qCAAgB;IACnB,GAAG,mCAAe;CACV,CAAC;AAOX;;;;GAIG;AACH,SAAgB,YAAY,CAAC,eAAuB;IAClD,OAAO,gBAAgB,CAAC,QAAQ,CAAC,eAA6B,CAAC,CAAC;AAClE,CAAC;AAFD,oCAEC"}
|
|
@@ -10,11 +10,7 @@ const getBasePropertyMap_1 = require("../../core/_internal/getBasePropertyMap");
|
|
|
10
10
|
*/
|
|
11
11
|
function getPropertyMap() {
|
|
12
12
|
const map = getBasePropertyMap_1.getBasePropertyMap();
|
|
13
|
-
|
|
14
|
-
* project-specific mappings. Note: we do not need to explicitly map
|
|
15
|
-
* properties from the project item's data.view into the entity's view
|
|
16
|
-
* because that mapping is already defined in the base property map
|
|
17
|
-
*/
|
|
13
|
+
// Type specific mappings
|
|
18
14
|
map.push({ entityKey: "status", storeKey: "data.status" });
|
|
19
15
|
map.push({ entityKey: "catalog", storeKey: "data.catalog" });
|
|
20
16
|
map.push({ entityKey: "permissions", storeKey: "data.permissions" });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPropertyMap.js","sourceRoot":"","sources":["../../../../src/projects/_internal/getPropertyMap.ts"],"names":[],"mappings":";;;AACA,gFAA6E;AAE7E;;;;;GAKG;AAEH,SAAgB,cAAc;IAC5B,MAAM,GAAG,GAAG,uCAAkB,EAAE,CAAC;IAEjC
|
|
1
|
+
{"version":3,"file":"getPropertyMap.js","sourceRoot":"","sources":["../../../../src/projects/_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;QACP,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,0BAA0B;KACrC,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAExE,OAAO,GAAG,CAAC;AACb,CAAC;AAlBD,wCAkBC"}
|
|
@@ -3,7 +3,7 @@ import { IAccessResponse } from "../core/types/IAccessResponse";
|
|
|
3
3
|
/**
|
|
4
4
|
* Hub System Capabilities
|
|
5
5
|
*/
|
|
6
|
-
declare const validCapabilities: readonly ["collaboration", "dashboard", "details", "discussions", "events", "followers", "overview", "settings", "teams", "metrics", "content"];
|
|
6
|
+
declare const validCapabilities: readonly ["collaboration", "dashboard", "details", "discussions", "events", "followers", "overview", "settings", "teams", "metrics", "members", "content"];
|
|
7
7
|
/**
|
|
8
8
|
* Defines the possible values for Capability
|
|
9
9
|
*/
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const HUB_ENTITY_TYPES: readonly ["site", "project", "initiative", "page", "discussion", "content", "org"];
|
|
1
|
+
export declare const HUB_ENTITY_TYPES: readonly ["site", "project", "initiative", "page", "discussion", "content", "org", "group"];
|
|
2
2
|
export declare type HubEntityType = (typeof HUB_ENTITY_TYPES)[number];
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { IWithPermissions } from "../traits";
|
|
2
|
+
import { IHubEntityBase } from "./IHubEntityBase";
|
|
3
|
+
import { GroupSortField, SettableAccessLevel, MemberType, MembershipAccess, PlatformSortOrder } from "./types";
|
|
4
|
+
/**
|
|
5
|
+
* Defines the properties of a Hub Group object
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export interface IHubGroup extends IHubEntityBase, IWithPermissions {
|
|
9
|
+
/**
|
|
10
|
+
* Access level of the group
|
|
11
|
+
* ("private" | "org" | "public")
|
|
12
|
+
*/
|
|
13
|
+
access: SettableAccessLevel;
|
|
14
|
+
/**
|
|
15
|
+
* Whether members can auto join the group
|
|
16
|
+
*/
|
|
17
|
+
autoJoin?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Description for the group
|
|
20
|
+
*/
|
|
21
|
+
description?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Whether the group is editable
|
|
24
|
+
*/
|
|
25
|
+
isSharedUpdate: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Whether the group accepts members through invitations only
|
|
28
|
+
*/
|
|
29
|
+
isInvitationOnly: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Whether discussions are enabled or disabled
|
|
32
|
+
*/
|
|
33
|
+
isDiscussable: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Whether the group is for read only or not
|
|
36
|
+
*/
|
|
37
|
+
isReadOnly: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Whether the group is for view only or not
|
|
40
|
+
*/
|
|
41
|
+
isViewOnly: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Who can join the groups
|
|
44
|
+
* (organization, collaborators, anyone)
|
|
45
|
+
*/
|
|
46
|
+
membershipAccess?: MembershipAccess;
|
|
47
|
+
/**
|
|
48
|
+
* Username of the owner of the group
|
|
49
|
+
*/
|
|
50
|
+
owner?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Whether the group is protect or not
|
|
53
|
+
* the group cannot be deleted if protected
|
|
54
|
+
*/
|
|
55
|
+
protected: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Sort field for the Group
|
|
58
|
+
*/
|
|
59
|
+
sortField?: GroupSortField;
|
|
60
|
+
/**
|
|
61
|
+
* Sort order for the Group
|
|
62
|
+
*/
|
|
63
|
+
sortOrder?: PlatformSortOrder;
|
|
64
|
+
/**
|
|
65
|
+
* User configurable tags
|
|
66
|
+
*/
|
|
67
|
+
tags?: string[];
|
|
68
|
+
/**
|
|
69
|
+
* Group thumbnail url (read-only)
|
|
70
|
+
*/
|
|
71
|
+
thumbnail?: string;
|
|
72
|
+
/**
|
|
73
|
+
* Group thumbnail url (read-only)
|
|
74
|
+
*/
|
|
75
|
+
thumbnailUrl?: string;
|
|
76
|
+
/**
|
|
77
|
+
* Member types of the group
|
|
78
|
+
* ("owner" | "admin" | "member" | "none")
|
|
79
|
+
*/
|
|
80
|
+
memberType?: MemberType;
|
|
81
|
+
/**
|
|
82
|
+
* Whether there is a field we are trying to clear,
|
|
83
|
+
* if true, we need to send clearEmptyFields: true
|
|
84
|
+
* to the updateGroup call
|
|
85
|
+
*/
|
|
86
|
+
_clearEmptyFields?: boolean;
|
|
87
|
+
}
|
|
@@ -8,7 +8,7 @@ export declare type SystemStatus = "online" | "offline" | "maintenance" | "not-a
|
|
|
8
8
|
export declare type HubSystemStatus = {
|
|
9
9
|
[key in HubSubsystem]: SystemStatus;
|
|
10
10
|
};
|
|
11
|
-
declare const validSubsystems: readonly ["content", "discussions", "events", "initiatives", "items", "metrics", "notifications", "pages", "projects", "search", "sites"];
|
|
11
|
+
declare const validSubsystems: readonly ["content", "discussions", "events", "initiatives", "items", "metrics", "notifications", "pages", "projects", "search", "sites", "groups"];
|
|
12
12
|
/**
|
|
13
13
|
* Defines values for HubSubsystem
|
|
14
14
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Access levels that can be set on an
|
|
2
|
+
* Access levels that can be set on an entity
|
|
3
3
|
*/
|
|
4
4
|
export declare type SettableAccessLevel = "public" | "org" | "private";
|
|
5
5
|
/**
|
|
@@ -20,3 +20,22 @@ export declare const EntityResourceMap: {
|
|
|
20
20
|
* Please note that adding more values will require changes in the location picker
|
|
21
21
|
*/
|
|
22
22
|
export declare type IHubLocationType = "none" | "custom" | "org" | "item";
|
|
23
|
+
/**
|
|
24
|
+
* Sort field for Hub Groups
|
|
25
|
+
*/
|
|
26
|
+
export declare type GroupSortField = "title" | "owner" | "avgrating" | "numviews" | "created" | "modified";
|
|
27
|
+
/**
|
|
28
|
+
* Member type for Hub Groups
|
|
29
|
+
*/
|
|
30
|
+
export declare type MemberType = "owner" | "admin" | "member" | "none";
|
|
31
|
+
/**
|
|
32
|
+
* ArcGIS sort orders
|
|
33
|
+
*/
|
|
34
|
+
export declare type PlatformSortOrder = "asc" | "desc";
|
|
35
|
+
/**
|
|
36
|
+
* Who can join the groups
|
|
37
|
+
* organization: members of the group's org only
|
|
38
|
+
* collaborators: members of the group's org and its partner orgs
|
|
39
|
+
* anyone: members of any orgs
|
|
40
|
+
*/
|
|
41
|
+
export declare type MembershipAccess = "organization" | "collaborators" | "anyone";
|
|
@@ -954,6 +954,13 @@ export interface ICreateDiscussionSetting {
|
|
|
954
954
|
type: DiscussionSettingType;
|
|
955
955
|
settings: ISettings;
|
|
956
956
|
}
|
|
957
|
+
/**
|
|
958
|
+
* @export
|
|
959
|
+
* @interface IUpdateDiscussionSetting
|
|
960
|
+
*/
|
|
961
|
+
export interface IUpdateDiscussionSetting {
|
|
962
|
+
settings: Partial<ISettings>;
|
|
963
|
+
}
|
|
957
964
|
/**
|
|
958
965
|
* parameters for creating a discussionSetting
|
|
959
966
|
*
|
|
@@ -974,6 +981,17 @@ export interface ICreateDiscussionSettingParams extends IDiscussionsRequestOptio
|
|
|
974
981
|
export interface IFetchDiscussionSettingParams extends IDiscussionsRequestOptions {
|
|
975
982
|
id: string;
|
|
976
983
|
}
|
|
984
|
+
/**
|
|
985
|
+
* parameters for updating a discussionSetting
|
|
986
|
+
*
|
|
987
|
+
* @export
|
|
988
|
+
* @interface IUpdateDiscussionSettingParams
|
|
989
|
+
* @extends {IDiscussionsRequestOptions}
|
|
990
|
+
*/
|
|
991
|
+
export interface IUpdateDiscussionSettingParams extends IDiscussionsRequestOptions {
|
|
992
|
+
id: string;
|
|
993
|
+
data: IUpdateDiscussionSetting;
|
|
994
|
+
}
|
|
977
995
|
/**
|
|
978
996
|
* parameters for removing a discussionSetting
|
|
979
997
|
*
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { IHubGroup } from "../core/types/IHubGroup";
|
|
2
|
+
import { IEntityPermissionPolicy, IPermissionAccessResponse, Permission } from "../permissions";
|
|
3
|
+
import { IWithStoreBehavior } from "../core/behaviors/IWithStoreBehavior";
|
|
4
|
+
import { IWithPermissionBehavior } from "../core/behaviors/IWithPermissionBehavior";
|
|
5
|
+
import { IArcGISContext } from "../ArcGISContext";
|
|
6
|
+
/**
|
|
7
|
+
* Hub Group Class
|
|
8
|
+
*/
|
|
9
|
+
export declare class HubGroup implements IWithStoreBehavior<IHubGroup>, IWithPermissionBehavior {
|
|
10
|
+
protected context: IArcGISContext;
|
|
11
|
+
protected entity: IHubGroup;
|
|
12
|
+
protected isDestroyed: boolean;
|
|
13
|
+
private constructor();
|
|
14
|
+
/**
|
|
15
|
+
* Whether the user can edit the group,
|
|
16
|
+
* only the owner or admins of the group can
|
|
17
|
+
*/
|
|
18
|
+
get canEdit(): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Whether the user can delete the group
|
|
21
|
+
* only the owner or admins of the group can
|
|
22
|
+
*/
|
|
23
|
+
get canDelete(): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Whether the group is protected, if so, it can't be deleted
|
|
26
|
+
*/
|
|
27
|
+
get isProtected(): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Create an instance from an IHubGroup object
|
|
30
|
+
* @param json - JSON object to create a HubGroup from
|
|
31
|
+
* @param context - ArcGIS context
|
|
32
|
+
* @returns
|
|
33
|
+
*/
|
|
34
|
+
static fromJson(json: Partial<IHubGroup>, context: IArcGISContext): HubGroup;
|
|
35
|
+
/**
|
|
36
|
+
* Create a new HubGroup, returning a HubGroup instance.
|
|
37
|
+
* Note: This does not persist the Group into the backing store
|
|
38
|
+
* @param partialGroup
|
|
39
|
+
* @param context
|
|
40
|
+
* @returns
|
|
41
|
+
*/
|
|
42
|
+
static create(partialGroup: Partial<IHubGroup>, context: IArcGISContext, save?: boolean): Promise<HubGroup>;
|
|
43
|
+
/**
|
|
44
|
+
* Fetch a Group from the backing store and return a HubGroup instance.
|
|
45
|
+
* @param identifier - Identifier of the group to load
|
|
46
|
+
* @param context
|
|
47
|
+
* @returns
|
|
48
|
+
*/
|
|
49
|
+
static fetch(identifier: string, context: IArcGISContext): Promise<HubGroup>;
|
|
50
|
+
private static applyDefaults;
|
|
51
|
+
/**
|
|
52
|
+
* Return the backing entity as an object literal
|
|
53
|
+
*/
|
|
54
|
+
toJson(): IHubGroup;
|
|
55
|
+
/**
|
|
56
|
+
* Apply a new state to the instance
|
|
57
|
+
* @param changes
|
|
58
|
+
*/
|
|
59
|
+
update(changes: Partial<IHubGroup>): void;
|
|
60
|
+
/**
|
|
61
|
+
* Save the HubGroup to the backing store
|
|
62
|
+
* @returns
|
|
63
|
+
*/
|
|
64
|
+
save(): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Delete the HubGroup from the store
|
|
67
|
+
* set a flag to indicate that it is destroyed
|
|
68
|
+
* @returns
|
|
69
|
+
*/
|
|
70
|
+
delete(): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Check if current user has a specific permission, accounting for
|
|
73
|
+
* both system and entity level policies
|
|
74
|
+
* @param permission
|
|
75
|
+
* @returns
|
|
76
|
+
*/
|
|
77
|
+
checkPermission(permission: Permission): IPermissionAccessResponse;
|
|
78
|
+
/**
|
|
79
|
+
* Get all policies related to a specific permission
|
|
80
|
+
* @param permission
|
|
81
|
+
* @returns
|
|
82
|
+
*/
|
|
83
|
+
getPermissionPolicies(permission: Permission): IEntityPermissionPolicy[];
|
|
84
|
+
/**
|
|
85
|
+
* Add a policy to the entity
|
|
86
|
+
* @param policy
|
|
87
|
+
*/
|
|
88
|
+
addPermissionPolicy(policy: IEntityPermissionPolicy): void;
|
|
89
|
+
/**
|
|
90
|
+
* Remove a policy from the entity
|
|
91
|
+
* @param permission
|
|
92
|
+
* @param id
|
|
93
|
+
*/
|
|
94
|
+
removePermissionPolicy(permission: Permission, id: string): void;
|
|
95
|
+
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { IGroup } from "@esri/arcgis-rest-types";
|
|
2
2
|
import { IHubSearchResult } from "../search";
|
|
3
3
|
import { IHubRequestOptions } from "../types";
|
|
4
|
+
import { IRequestOptions } from "@esri/arcgis-rest-request";
|
|
5
|
+
import { IHubGroup } from "../core/types/IHubGroup";
|
|
6
|
+
import { IUserRequestOptions } from "@esri/arcgis-rest-auth";
|
|
4
7
|
/**
|
|
5
8
|
* Enrich a generic search result
|
|
6
9
|
* @param group
|
|
@@ -9,3 +12,35 @@ import { IHubRequestOptions } from "../types";
|
|
|
9
12
|
* @returns
|
|
10
13
|
*/
|
|
11
14
|
export declare function enrichGroupSearchResult(group: IGroup, include: string[], requestOptions: IHubRequestOptions): Promise<IHubSearchResult>;
|
|
15
|
+
/**
|
|
16
|
+
* Create a new Hub Group
|
|
17
|
+
* we are creating an IGroup with the createGroup call
|
|
18
|
+
* so we need to convert the Hub Group to IGroup first
|
|
19
|
+
* then convert it back to Hub Group and return it
|
|
20
|
+
* @param partialGroup
|
|
21
|
+
* @param requestOptions
|
|
22
|
+
*/
|
|
23
|
+
export declare function createHubGroup(partialGroup: Partial<IHubGroup>, requestOptions: IUserRequestOptions): Promise<IHubGroup>;
|
|
24
|
+
/**
|
|
25
|
+
* Get a Hub Group by id
|
|
26
|
+
* we need to convert the IGroup we get to Hub Group
|
|
27
|
+
* @param identifier
|
|
28
|
+
* @param requestOptions
|
|
29
|
+
*/
|
|
30
|
+
export declare function fetchHubGroup(identifier: string, requestOptions: IUserRequestOptions): Promise<IHubGroup>;
|
|
31
|
+
/**
|
|
32
|
+
* @private
|
|
33
|
+
* Update a Hub Group and return it
|
|
34
|
+
* we need to convert the incoming Hub Group to IGroup
|
|
35
|
+
* before sending it to the API
|
|
36
|
+
* @param hubGroup
|
|
37
|
+
* @param requestOptions
|
|
38
|
+
*/
|
|
39
|
+
export declare function updateHubGroup(hubGroup: IHubGroup, requestOptions: IRequestOptions): Promise<IHubGroup>;
|
|
40
|
+
/**
|
|
41
|
+
* @private
|
|
42
|
+
* Remove a Hub Group
|
|
43
|
+
* @param id
|
|
44
|
+
* @param requestOptions
|
|
45
|
+
*/
|
|
46
|
+
export declare function deleteHubGroup(id: string, requestOptions: IUserRequestOptions): Promise<void>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { EntityCapabilities, ICapabilityPermission } from "../../capabilities";
|
|
2
|
+
import { IPermissionPolicy } from "../../permissions";
|
|
3
|
+
/**
|
|
4
|
+
* Default capabilities for a Group. If not listed here, the capability will not be available
|
|
5
|
+
* NOTE: We do not use the group capabilities right now as we do not
|
|
6
|
+
* have a data store for it yet, leaving them here for the future
|
|
7
|
+
* @private
|
|
8
|
+
*/
|
|
9
|
+
export declare const GroupDefaultCapabilities: EntityCapabilities;
|
|
10
|
+
/**
|
|
11
|
+
* List of all the Group Capability Permissions
|
|
12
|
+
* These are considered Hub Business Rules and are not intended
|
|
13
|
+
* to be modified by consumers
|
|
14
|
+
* @private
|
|
15
|
+
*/
|
|
16
|
+
export declare const GroupCapabilityPermissions: ICapabilityPermission[];
|
|
17
|
+
/**
|
|
18
|
+
* Group Permission Policies
|
|
19
|
+
* These define the requirements any user must meet to perform related actions
|
|
20
|
+
* @private
|
|
21
|
+
*/
|
|
22
|
+
export declare const GroupPermissions: readonly ["hub:group:create", "hub:group:delete", "hub:group:edit", "hub:group:view", "hub:group:owner"];
|
|
23
|
+
/**
|
|
24
|
+
* Group permission policies
|
|
25
|
+
* @private
|
|
26
|
+
*/
|
|
27
|
+
export declare const GroupPermissionPolicies: IPermissionPolicy[];
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IRequestOptions } from "@esri/arcgis-rest-request";
|
|
2
|
+
import { IHubGroup } from "../../core/types/IHubGroup";
|
|
3
|
+
import { IGroup } from "@esri/arcgis-rest-types";
|
|
4
|
+
/**
|
|
5
|
+
* Given a model and a group, set various computed properties that can't be directly mapped
|
|
6
|
+
* @private
|
|
7
|
+
* @param group
|
|
8
|
+
* @param hubGroup
|
|
9
|
+
* @param requestOptions
|
|
10
|
+
* @returns
|
|
11
|
+
*/
|
|
12
|
+
export declare function computeProps(group: IGroup, hubGroup: Partial<IHubGroup>, requestOptions: IRequestOptions): IHubGroup;
|