@esri/hub-common 14.193.0 → 14.195.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/content/search.js +2 -0
- package/dist/esm/content/search.js.map +1 -1
- package/dist/esm/downloads/_internal/file-url-fetchers/fetchExportImageDownloadFile.js +0 -1
- package/dist/esm/downloads/_internal/file-url-fetchers/fetchExportImageDownloadFile.js.map +1 -1
- package/dist/esm/downloads/_internal/file-url-fetchers/fetchHubApiDownloadFile.js +38 -13
- package/dist/esm/downloads/_internal/file-url-fetchers/fetchHubApiDownloadFile.js.map +1 -1
- package/dist/esm/downloads/types.js.map +1 -1
- package/dist/esm/search/_internal/getUserGroupsByMembership.js +42 -0
- package/dist/esm/search/_internal/getUserGroupsByMembership.js.map +1 -0
- package/dist/esm/search/_internal/getUserGroupsFromQuery.js +24 -25
- package/dist/esm/search/_internal/getUserGroupsFromQuery.js.map +1 -1
- package/dist/esm/search/_internal/index.js +1 -0
- package/dist/esm/search/_internal/index.js.map +1 -1
- package/dist/esm/search/getAddContentConfig.js +50 -8
- package/dist/esm/search/getAddContentConfig.js.map +1 -1
- package/dist/esm/users/_internal/UserBusinessRules.js +20 -5
- package/dist/esm/users/_internal/UserBusinessRules.js.map +1 -1
- package/dist/node/content/search.js +2 -0
- package/dist/node/content/search.js.map +1 -1
- package/dist/node/downloads/_internal/file-url-fetchers/fetchExportImageDownloadFile.js +0 -1
- package/dist/node/downloads/_internal/file-url-fetchers/fetchExportImageDownloadFile.js.map +1 -1
- package/dist/node/downloads/_internal/file-url-fetchers/fetchHubApiDownloadFile.js +38 -13
- package/dist/node/downloads/_internal/file-url-fetchers/fetchHubApiDownloadFile.js.map +1 -1
- package/dist/node/downloads/types.js.map +1 -1
- package/dist/node/search/_internal/getUserGroupsByMembership.js +46 -0
- package/dist/node/search/_internal/getUserGroupsByMembership.js.map +1 -0
- package/dist/node/search/_internal/getUserGroupsFromQuery.js +24 -25
- package/dist/node/search/_internal/getUserGroupsFromQuery.js.map +1 -1
- package/dist/node/search/_internal/index.js +1 -0
- package/dist/node/search/_internal/index.js.map +1 -1
- package/dist/node/search/getAddContentConfig.js +50 -8
- package/dist/node/search/getAddContentConfig.js.map +1 -1
- package/dist/node/users/_internal/UserBusinessRules.js +20 -5
- package/dist/node/users/_internal/UserBusinessRules.js.map +1 -1
- package/dist/types/downloads/_internal/file-url-fetchers/fetchHubApiDownloadFile.d.ts +3 -2
- package/dist/types/downloads/types.d.ts +33 -0
- package/dist/types/search/_internal/getUserGroupsByMembership.d.ts +16 -0
- package/dist/types/search/_internal/index.d.ts +1 -0
- package/dist/types/search/types/AddContentWorkflowTypes.d.ts +1 -1
- package/dist/types/users/_internal/UserBusinessRules.d.ts +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ import { unique } from "../util";
|
|
|
7
7
|
import { mapBy } from "../utils";
|
|
8
8
|
import { getFamily } from "./get-family";
|
|
9
9
|
import { deriveLocationFromItem, getHubRelativeUrl, } from "./_internal/internalContentUtils";
|
|
10
|
+
import { getRelativeWorkspaceUrl } from "../core/getRelativeWorkspaceUrl";
|
|
10
11
|
/**
|
|
11
12
|
* Enrich a generic search result
|
|
12
13
|
* @param item
|
|
@@ -68,6 +69,7 @@ export async function enrichContentSearchResult(item, include, requestOptions) {
|
|
|
68
69
|
result.links.thumbnail = getItemThumbnailUrl(item, requestOptions);
|
|
69
70
|
result.links.self = getItemHomeUrl(result.id, requestOptions);
|
|
70
71
|
result.links.siteRelative = getHubRelativeUrl(result.type, result.id, item.typeKeywords);
|
|
72
|
+
result.links.workspaceRelative = getRelativeWorkspaceUrl(result.type, result.id);
|
|
71
73
|
return result;
|
|
72
74
|
}
|
|
73
75
|
//# sourceMappingURL=search.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/content/search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EACL,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/content/search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EACL,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,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,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,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,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,KAAK,EAAE;YACL,IAAI,EAAE,iBAAiB;YACvB,YAAY,EAAE,iBAAiB;YAC/B,SAAS,EAAE,iBAAiB;SAC7B;QACD,QAAQ,EAAE,sBAAsB,CAAC,IAAI,CAAC;QACtC,SAAS,EAAE,IAAI;KAChB,CAAC;IAEF,mBAAmB;IACnB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,sCAAsC;IACtC,gEAAgE;IAChE,uDAAuD;IACvD,IAAI;IAEJ,iCAAiC;IACjC,gEAAgE;IAChE,IAAI;IAEJ,iBAAiB;IACjB,OAAO,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnD,qDAAqD;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACxC,+CAA+C;IAC/C,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9D,wBAAwB;IACxB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,WAAW,CAAC,MAAM,EAAE;QACtB,QAAQ,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;KAC1E;IAED,yCAAyC;IACzC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,eAAe;IACf,8CAA8C;IAC9C,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,mBAAmB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACnE,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IAC9D,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,iBAAiB,CAC3C,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,EAAE,EACT,IAAI,CAAC,YAAY,CAClB,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,iBAAiB,GAAG,uBAAuB,CACtD,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,EAAE,CACV,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -37,7 +37,6 @@ export async function fetchExportImageDownloadFile(options) {
|
|
|
37
37
|
// requestOptions.params.size = `${maxImageWidth},${maxImageHeight}`;
|
|
38
38
|
// }
|
|
39
39
|
const blob = await request(`${entity.url}/exportImage`, requestOptions);
|
|
40
|
-
progressCallback && progressCallback(DownloadOperationStatus.COMPLETED);
|
|
41
40
|
return {
|
|
42
41
|
type: "blob",
|
|
43
42
|
blob,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchExportImageDownloadFile.js","sourceRoot":"","sources":["../../../../../src/downloads/_internal/file-url-fetchers/fetchExportImageDownloadFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EACL,uBAAuB,EAGvB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAIpD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,OAAkC;IAElC,eAAe,CAAC,OAAO,CAAC,CAAC;IAEzB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAC9D,gBAAgB,IAAI,gBAAgB,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAEtE,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAC1C,iDAAiD;IACjD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAEzC,MAAM,cAAc,qBAAQ,OAAO,CAAC,cAAc,CAAE,CAAC;IACrD,cAAc,CAAC,UAAU,GAAG,KAAK,CAAC;IAClC,cAAc,CAAC,MAAM,GAAG;QACtB,IAAI,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;QACvC,MAAM,EAAE,GAAG,IAAI,EAAE;QACjB,CAAC,EAAE,OAAO;QACV,MAAM;QACN,UAAU,EACR,sFAAsF;KACzF,CAAC;IAEF,8FAA8F;IAC9F,gGAAgG;IAChG,qCAAqC;IACrC,EAAE;IACF,4CAA4C;IAC5C,mDAAmD;IACnD,yCAAyC;IACzC,uEAAuE;IACvE,IAAI;IAEJ,MAAM,IAAI,GAAS,MAAM,OAAO,CAAC,GAAG,MAAM,CAAC,GAAG,cAAc,EAAE,cAAc,CAAC,CAAC;IAC9E,
|
|
1
|
+
{"version":3,"file":"fetchExportImageDownloadFile.js","sourceRoot":"","sources":["../../../../../src/downloads/_internal/file-url-fetchers/fetchExportImageDownloadFile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import HubError from "../../../HubError";
|
|
2
2
|
import { getProp } from "../../../objects/get-prop";
|
|
3
|
+
import { wait } from "../../../utils/wait";
|
|
3
4
|
import { ArcgisHubDownloadError, DownloadOperationStatus, ServiceDownloadFormat, } from "../../types";
|
|
4
5
|
/**
|
|
5
6
|
* @private
|
|
6
|
-
* Fetches a download file url from the Hub Download API
|
|
7
|
+
* Fetches a download file url from the Hub Download API. If we know the file will be served from
|
|
8
|
+
* a cache, we also return the status of the cache.
|
|
7
9
|
*
|
|
8
10
|
* NOTE: The Hub Download API only works with a certain subset of Feature and Map services
|
|
9
11
|
* and performs different operations (i.e., calling createReplica or paging the service's
|
|
@@ -13,13 +15,19 @@ import { ArcgisHubDownloadError, DownloadOperationStatus, ServiceDownloadFormat,
|
|
|
13
15
|
* interface for downloading data from any service supported by the Hub Download API.
|
|
14
16
|
*
|
|
15
17
|
* @param options options for refining / filtering the resulting download file
|
|
16
|
-
* @returns
|
|
18
|
+
* @returns the url to download the file and cache status
|
|
17
19
|
*/
|
|
18
20
|
export async function fetchHubApiDownloadFile(options) {
|
|
19
21
|
validateOptions(options);
|
|
20
22
|
const requestUrl = getDownloadApiRequestUrl(options);
|
|
21
|
-
const { pollInterval, progressCallback } = options;
|
|
22
|
-
|
|
23
|
+
const { pollInterval, updateCache, progressCallback } = options;
|
|
24
|
+
let cacheQueryParam;
|
|
25
|
+
if (updateCache) {
|
|
26
|
+
// The download api has 2 query params that can be used for controlling cache behavior.
|
|
27
|
+
// This one should only be used as part of an initial request to update the cache
|
|
28
|
+
cacheQueryParam = "updateCache";
|
|
29
|
+
}
|
|
30
|
+
return pollDownloadApi(requestUrl, pollInterval, cacheQueryParam, progressCallback);
|
|
23
31
|
}
|
|
24
32
|
function validateOptions(options) {
|
|
25
33
|
const { layers = [] } = options;
|
|
@@ -41,7 +49,7 @@ function validateOptions(options) {
|
|
|
41
49
|
* @returns a download api url that can be polled
|
|
42
50
|
*/
|
|
43
51
|
function getDownloadApiRequestUrl(options) {
|
|
44
|
-
const { entity, format, context, layers, geometry, where } = options;
|
|
52
|
+
const { entity, format, context, layers, geometry, where, updateCache } = options;
|
|
45
53
|
const searchParams = new URLSearchParams({
|
|
46
54
|
redirect: "false",
|
|
47
55
|
layers: layers[0].toString(),
|
|
@@ -66,11 +74,21 @@ function getDownloadApiRequestUrl(options) {
|
|
|
66
74
|
* Polls the Hub Download API until the download is ready, then returns the download file URL
|
|
67
75
|
*
|
|
68
76
|
* @param requestUrl Hub Download Api URL to poll
|
|
77
|
+
* @param pollInterval interval in milliseconds to poll for job completion
|
|
78
|
+
* @param cacheQueryParam an optional query param to control cache behavior. 'updateCache' should
|
|
79
|
+
* only be used with the initial request when a download cache update is desired. All subsequent
|
|
80
|
+
* requests should use'trackCacheUpdate' to follow the progress of the cache update.
|
|
81
|
+
* for subsequent requests when polling the progress of a cache update.
|
|
69
82
|
* @param progressCallback an optional callback to report download generation progress
|
|
70
83
|
* @returns the final file URL
|
|
71
84
|
*/
|
|
72
|
-
async function pollDownloadApi(requestUrl, pollInterval, progressCallback) {
|
|
73
|
-
|
|
85
|
+
async function pollDownloadApi(requestUrl, pollInterval, cacheQueryParam, progressCallback) {
|
|
86
|
+
// If requested, append the cache query param to the request URL
|
|
87
|
+
let withCacheQueryParam = requestUrl;
|
|
88
|
+
if (cacheQueryParam) {
|
|
89
|
+
withCacheQueryParam = `${requestUrl}&${cacheQueryParam}=true`;
|
|
90
|
+
}
|
|
91
|
+
const response = await fetch(withCacheQueryParam);
|
|
74
92
|
if (!response.ok) {
|
|
75
93
|
const errorBody = await response.json();
|
|
76
94
|
// TODO: Add standarized messageId when available
|
|
@@ -78,22 +96,29 @@ async function pollDownloadApi(requestUrl, pollInterval, progressCallback) {
|
|
|
78
96
|
rawMessage: errorBody.message,
|
|
79
97
|
});
|
|
80
98
|
}
|
|
81
|
-
const { status, progressInPercent, resultUrl } = await response.json();
|
|
99
|
+
const { status, progressInPercent, resultUrl, cacheStatus, } = await response.json();
|
|
82
100
|
const operationStatus = toDownloadOperationStatus(status);
|
|
83
101
|
if (operationStatus === DownloadOperationStatus.FAILED) {
|
|
84
102
|
throw new HubError("fetchHubApiDownloadFileUrl", "Download operation failed with a 200");
|
|
85
103
|
}
|
|
86
|
-
progressCallback && progressCallback(operationStatus, progressInPercent);
|
|
87
|
-
// Operation complete, return the download URL
|
|
88
104
|
if (resultUrl) {
|
|
105
|
+
// Operation complete, return the download URL and cache status
|
|
89
106
|
return {
|
|
90
107
|
type: "url",
|
|
91
108
|
href: resultUrl,
|
|
109
|
+
cacheStatus,
|
|
92
110
|
};
|
|
93
111
|
}
|
|
94
|
-
// Operation still in progress
|
|
95
|
-
|
|
96
|
-
|
|
112
|
+
// Operation still in progress. Report progress if a callback was provided and poll again.
|
|
113
|
+
progressCallback && progressCallback(operationStatus, progressInPercent);
|
|
114
|
+
await wait(pollInterval);
|
|
115
|
+
let updatedCacheQueryParam;
|
|
116
|
+
if (cacheQueryParam) {
|
|
117
|
+
// After an initial request with ?updateCache=true, we need to switch to ?trackCacheUpdate=true.
|
|
118
|
+
// This enables us to follow the progress of the cache update without causing an infinite update loop.
|
|
119
|
+
updatedCacheQueryParam = "trackCacheUpdate";
|
|
120
|
+
}
|
|
121
|
+
return pollDownloadApi(requestUrl, pollInterval, updatedCacheQueryParam, progressCallback);
|
|
97
122
|
}
|
|
98
123
|
/**
|
|
99
124
|
* @private
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchHubApiDownloadFile.js","sourceRoot":"","sources":["../../../../../src/downloads/_internal/file-url-fetchers/fetchHubApiDownloadFile.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EACL,sBAAsB,
|
|
1
|
+
{"version":3,"file":"fetchHubApiDownloadFile.js","sourceRoot":"","sources":["../../../../../src/downloads/_internal/file-url-fetchers/fetchHubApiDownloadFile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/downloads/types.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,SAAS,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC;QACpC,kBAAkB,EAAE,IAAI;KACzB;IACD,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,SAAS,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC;QACpC,kBAAkB,EAAE,KAAK;KAC1B;IACD,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,CAAC,WAAW,CAAC;QACxB,kBAAkB,EAAE,IAAI;KACzB;IACD,eAAe,EAAE;QACf,IAAI,EAAE,kBAAkB;QACxB,SAAS,EAAE,CAAC,kBAAkB,CAAC;QAC/B,kBAAkB,EAAE,IAAI;KACzB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,CAAC,SAAS,CAAC;QACtB,kBAAkB,EAAE,KAAK;KAC1B;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,CAAC,iBAAiB,CAAC;QAC9B,kBAAkB,EAAE,IAAI;KACzB;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,oBAAoB;QAC1B,SAAS,EAAE,CAAC,oBAAoB,CAAC;QACjC,kBAAkB,EAAE,IAAI;KACzB;CAOF,CAAC;AAKF;;GAEG;AACH,MAAM,CAAN,IAAY,qBA0BX;AA1BD,WAAY,qBAAqB;IAC/B,wBAAwB;IACxB,oCAAW,CAAA;IACX,oCAAW,CAAA;IACX,oCAAW,CAAA;IACX,2CAAkB,CAAA;IAClB,oCAAW,CAAA;IACX,sCAAa,CAAA;IACb,wCAAe,CAAA;IACf,sCAAa,CAAA;IACb,wCAAe,CAAA;IACf,oCAAW,CAAA;IACX,oCAAW,CAAA;IACX,sCAAa,CAAA;IAEb,gCAAgC;IAChC,oCAAW,CAAA;IACX,wCAAe,CAAA;IACf,iEAAwC,CAAA;IACxC,6CAAoB,CAAA;IACpB,4CAAmB,CAAA;IACnB,mDAA0B,CAAA;IAC1B,sCAAa,CAAA;IACb,oCAAW,CAAA;IACX,gDAAuB,CAAA;IACvB,0CAAiB,CAAA;AACnB,CAAC,EA1BW,qBAAqB,KAArB,qBAAqB,QA0BhC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/downloads/types.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,SAAS,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC;QACpC,kBAAkB,EAAE,IAAI;KACzB;IACD,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,SAAS,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC;QACpC,kBAAkB,EAAE,KAAK;KAC1B;IACD,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,CAAC,WAAW,CAAC;QACxB,kBAAkB,EAAE,IAAI;KACzB;IACD,eAAe,EAAE;QACf,IAAI,EAAE,kBAAkB;QACxB,SAAS,EAAE,CAAC,kBAAkB,CAAC;QAC/B,kBAAkB,EAAE,IAAI;KACzB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,CAAC,SAAS,CAAC;QACtB,kBAAkB,EAAE,KAAK;KAC1B;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,CAAC,iBAAiB,CAAC;QAC9B,kBAAkB,EAAE,IAAI;KACzB;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,oBAAoB;QAC1B,SAAS,EAAE,CAAC,oBAAoB,CAAC;QACjC,kBAAkB,EAAE,IAAI;KACzB;CAOF,CAAC;AAKF;;GAEG;AACH,MAAM,CAAN,IAAY,qBA0BX;AA1BD,WAAY,qBAAqB;IAC/B,wBAAwB;IACxB,oCAAW,CAAA;IACX,oCAAW,CAAA;IACX,oCAAW,CAAA;IACX,2CAAkB,CAAA;IAClB,oCAAW,CAAA;IACX,sCAAa,CAAA;IACb,wCAAe,CAAA;IACf,sCAAa,CAAA;IACb,wCAAe,CAAA;IACf,oCAAW,CAAA;IACX,oCAAW,CAAA;IACX,sCAAa,CAAA;IAEb,gCAAgC;IAChC,oCAAW,CAAA;IACX,wCAAe,CAAA;IACf,iEAAwC,CAAA;IACxC,6CAAoB,CAAA;IACpB,4CAAmB,CAAA;IACnB,mDAA0B,CAAA;IAC1B,sCAAa,CAAA;IACb,oCAAW,CAAA;IACX,gDAAuB,CAAA;IACvB,0CAAiB,CAAA;AACnB,CAAC,EA1BW,qBAAqB,KAArB,qBAAqB,QA0BhC;AA4GD;;;GAGG;AACH,MAAM,CAAN,IAAY,uBAMX;AAND,WAAY,uBAAuB;IACjC,8CAAmB,CAAA;IACnB,oDAAyB,CAAA;IACzB,oDAAyB,CAAA;IACzB,kDAAuB,CAAA;IACvB,4CAAiB,CAAA;AACnB,CAAC,EANW,uBAAuB,KAAvB,uBAAuB,QAMlC;AAoBD;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAK/C,YAAY,OAAuC;QACjD,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACrC,CAAC;CACF"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retrieves the user's groups categorized by their membership type.
|
|
3
|
+
*
|
|
4
|
+
* @param user - The user object containing group information.
|
|
5
|
+
* @returns An object categorizing the user's groups into `owner`, `admin`, and `member`.
|
|
6
|
+
*
|
|
7
|
+
* The function processes the user's groups and classifies them based on the membership type:
|
|
8
|
+
* - `owner`: Groups where the user is an owner.
|
|
9
|
+
* - `admin`: Groups where the user is an admin.
|
|
10
|
+
* - `member`: Groups where the user is a member and the group is not view-only.
|
|
11
|
+
*
|
|
12
|
+
* Note: The `none` membership type is not considered as it is not expected to be present in the user's groups.
|
|
13
|
+
*/
|
|
14
|
+
export function getUserGroupsByMembership(user) {
|
|
15
|
+
const response = {
|
|
16
|
+
owner: [],
|
|
17
|
+
member: [],
|
|
18
|
+
admin: [],
|
|
19
|
+
};
|
|
20
|
+
// get the user's groups
|
|
21
|
+
const userGroups = user.groups || [];
|
|
22
|
+
// loop through the groups and determine if the user is an admin or normal member
|
|
23
|
+
// and add into the response
|
|
24
|
+
userGroups.forEach((group) => {
|
|
25
|
+
var _a, _b, _c;
|
|
26
|
+
if (((_a = group.userMembership) === null || _a === void 0 ? void 0 : _a.memberType) === "owner") {
|
|
27
|
+
response.owner.push(group.id);
|
|
28
|
+
}
|
|
29
|
+
if (((_b = group.userMembership) === null || _b === void 0 ? void 0 : _b.memberType) === "admin") {
|
|
30
|
+
response.admin.push(group.id);
|
|
31
|
+
}
|
|
32
|
+
// If user is just a member and the group is not view only
|
|
33
|
+
if (((_c = group.userMembership) === null || _c === void 0 ? void 0 : _c.memberType) === "member" && !group.isViewOnly) {
|
|
34
|
+
response.member.push(group.id);
|
|
35
|
+
}
|
|
36
|
+
// there is a `none` option in the userMembership but
|
|
37
|
+
// that would never be returned in the user's groups
|
|
38
|
+
// so we don't need to check for it
|
|
39
|
+
});
|
|
40
|
+
return response;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=getUserGroupsByMembership.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getUserGroupsByMembership.js","sourceRoot":"","sources":["../../../../src/search/_internal/getUserGroupsByMembership.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;GAYG;AAEH,MAAM,UAAU,yBAAyB,CAAC,IAAW;IACnD,MAAM,QAAQ,GAAwB;QACpC,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;KACV,CAAC;IACF,wBAAwB;IACxB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IACrC,iFAAiF;IACjF,4BAA4B;IAC5B,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;;QAC3B,IAAI,OAAA,KAAK,CAAC,cAAc,0CAAE,UAAU,MAAK,OAAO,EAAE;YAChD,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SAC/B;QACD,IAAI,OAAA,KAAK,CAAC,cAAc,0CAAE,UAAU,MAAK,OAAO,EAAE;YAChD,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SAC/B;QACD,0DAA0D;QAC1D,IAAI,OAAA,KAAK,CAAC,cAAc,0CAAE,UAAU,MAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YACtE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SAChC;QACD,qDAAqD;QACrD,oDAAoD;QACpD,mCAAmC;IACrC,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getPredicateValues } from "../getPredicateValues";
|
|
2
|
+
import { getUserGroupsByMembership } from "./getUserGroupsByMembership";
|
|
2
3
|
/**
|
|
3
4
|
* Given a query and a user, return an object with the set of groups
|
|
4
5
|
* that are in the Query, and which the user is a member of, split by
|
|
@@ -9,7 +10,7 @@ import { getPredicateValues } from "../getPredicateValues";
|
|
|
9
10
|
* @returns
|
|
10
11
|
*/
|
|
11
12
|
export function getUserGroupsFromQuery(query, user) {
|
|
12
|
-
|
|
13
|
+
let response = {
|
|
13
14
|
owner: [],
|
|
14
15
|
member: [],
|
|
15
16
|
admin: [],
|
|
@@ -17,30 +18,28 @@ export function getUserGroupsFromQuery(query, user) {
|
|
|
17
18
|
// collect up all the group predicates from the query's filters
|
|
18
19
|
// NOTE: this only pulls the all and any predicates
|
|
19
20
|
const groups = getPredicateValues("group", query);
|
|
20
|
-
// get the user's groups
|
|
21
|
-
const
|
|
22
|
-
//
|
|
23
|
-
//
|
|
24
|
-
groups.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
});
|
|
21
|
+
// get the user's groups by membership
|
|
22
|
+
const allUserGroups = getUserGroupsByMembership(user);
|
|
23
|
+
// if there are groups in the query, we subset the user's groups
|
|
24
|
+
// based on the groups in the query
|
|
25
|
+
if (groups.length) {
|
|
26
|
+
const props = [
|
|
27
|
+
"owner",
|
|
28
|
+
"admin",
|
|
29
|
+
"member",
|
|
30
|
+
];
|
|
31
|
+
groups.forEach((groupId) => {
|
|
32
|
+
// check each group type and add the group to the response if the user is a member
|
|
33
|
+
props.forEach((prop) => {
|
|
34
|
+
if (allUserGroups[prop].includes(groupId)) {
|
|
35
|
+
response[prop].push(groupId);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
response = allUserGroups;
|
|
42
|
+
}
|
|
44
43
|
return response;
|
|
45
44
|
}
|
|
46
45
|
//# sourceMappingURL=getUserGroupsFromQuery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUserGroupsFromQuery.js","sourceRoot":"","sources":["../../../../src/search/_internal/getUserGroupsFromQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D;;;;;;;;GAQG;AAEH,MAAM,UAAU,sBAAsB,CACpC,KAAa,EACb,IAAW;IAEX,
|
|
1
|
+
{"version":3,"file":"getUserGroupsFromQuery.js","sourceRoot":"","sources":["../../../../src/search/_internal/getUserGroupsFromQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE;;;;;;;;GAQG;AAEH,MAAM,UAAU,sBAAsB,CACpC,KAAa,EACb,IAAW;IAEX,IAAI,QAAQ,GAAwB;QAClC,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;KACV,CAAC;IACF,+DAA+D;IAC/D,mDAAmD;IACnD,MAAM,MAAM,GAAa,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5D,sCAAsC;IACtC,MAAM,aAAa,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACtD,gEAAgE;IAChE,mCAAmC;IACnC,IAAI,MAAM,CAAC,MAAM,EAAE;QACjB,MAAM,KAAK,GAAqC;YAC9C,OAAO;YACP,OAAO;YACP,QAAQ;SACT,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACzB,kFAAkF;YAClF,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrB,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;oBACzC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC9B;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;KACJ;SAAM;QACL,QAAQ,GAAG,aAAa,CAAC;KAC1B;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/search/_internal/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/search/_internal/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC"}
|
|
@@ -5,6 +5,7 @@ import { getPredicateValues } from "./getPredicateValues";
|
|
|
5
5
|
import { getDefaultCreateableTypes, getWorkflowForType, } from "./_internal/getWorkflowForType";
|
|
6
6
|
import { getProp } from "../objects/get-prop";
|
|
7
7
|
import { getUserGroupsFromQuery } from "./_internal/getUserGroupsFromQuery";
|
|
8
|
+
import { getUserGroupsByMembership } from "./_internal/getUserGroupsByMembership";
|
|
8
9
|
import { getCatalogGroups } from "./_internal";
|
|
9
10
|
const EmptyAddContentWorkflowConfig = {
|
|
10
11
|
create: null,
|
|
@@ -116,6 +117,9 @@ function getAddContentConfigForQuery(query, context) {
|
|
|
116
117
|
else if (query.targetEntity === "event") {
|
|
117
118
|
return getAddContentConfigForEventQuery(query, context);
|
|
118
119
|
}
|
|
120
|
+
else if (query.targetEntity === "group") {
|
|
121
|
+
return getAddContentConfigForGroupQuery(query, context);
|
|
122
|
+
}
|
|
119
123
|
else {
|
|
120
124
|
const response = cloneObject(EmptyAddContentWorkflowConfig);
|
|
121
125
|
response.state = "disabled";
|
|
@@ -123,6 +127,27 @@ function getAddContentConfigForQuery(query, context) {
|
|
|
123
127
|
return response;
|
|
124
128
|
}
|
|
125
129
|
}
|
|
130
|
+
function getAddContentConfigForGroupQuery(_query, context) {
|
|
131
|
+
const response = cloneObject(EmptyAddContentWorkflowConfig);
|
|
132
|
+
// groups can be created or added but the user needs permission
|
|
133
|
+
const chk = checkPermission("hub:group:create", context);
|
|
134
|
+
if (chk.access) {
|
|
135
|
+
response.create = {
|
|
136
|
+
targetEntity: "group",
|
|
137
|
+
workflow: "create",
|
|
138
|
+
types: ["Group"],
|
|
139
|
+
};
|
|
140
|
+
response.state = "enabled";
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
response.state = "disabled";
|
|
144
|
+
response.reason = "no-permission";
|
|
145
|
+
if (chk.response === "assertion-failed") {
|
|
146
|
+
response.reason = "too-many-groups";
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return response;
|
|
150
|
+
}
|
|
126
151
|
/**
|
|
127
152
|
* Specific logic for targetEntity="event"
|
|
128
153
|
* @param query
|
|
@@ -171,13 +196,27 @@ function getAddContentConfigForEventQuery(query, context) {
|
|
|
171
196
|
*/
|
|
172
197
|
function getAddContentConfigForItemQuery(query, context) {
|
|
173
198
|
const response = cloneObject(EmptyAddContentWorkflowConfig);
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
199
|
+
// We need to return groups by membership so we can show the group sharing ux
|
|
200
|
+
let userGroups = {
|
|
201
|
+
owner: [],
|
|
202
|
+
admin: [],
|
|
203
|
+
member: [],
|
|
204
|
+
};
|
|
205
|
+
// If the query has groups, then we need to check that the user is a member of those groups
|
|
206
|
+
const groups = getPredicateValues("group", query);
|
|
207
|
+
if (groups.length) {
|
|
208
|
+
userGroups = getUserGroupsFromQuery(query, context.currentUser);
|
|
209
|
+
if (!userGroups.owner.length &&
|
|
210
|
+
!userGroups.admin.length &&
|
|
211
|
+
!userGroups.member.length) {
|
|
212
|
+
response.state = "disabled";
|
|
213
|
+
response.reason = "not-in-groups";
|
|
214
|
+
return response;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
// we just need all the user's groups, as IGroupsByMembership object
|
|
219
|
+
userGroups = getUserGroupsByMembership(context.currentUser);
|
|
181
220
|
}
|
|
182
221
|
// Get all the types from all the the predicates in all of the filters
|
|
183
222
|
let queryTypes = getPredicateValues("type", query);
|
|
@@ -204,7 +243,10 @@ function getAddContentConfigForItemQuery(query, context) {
|
|
|
204
243
|
}
|
|
205
244
|
response.create.types.push(wft.type);
|
|
206
245
|
}
|
|
207
|
-
if
|
|
246
|
+
// Only show the add existing workflows if the query includes groups
|
|
247
|
+
// otherwise the query is defined by other criteria that we likely can't
|
|
248
|
+
// handle at this time (e.g. items owned by current user)
|
|
249
|
+
if (wft.workflows.includes("existing") && groups.length) {
|
|
208
250
|
if (!response.existing) {
|
|
209
251
|
response.existing = {
|
|
210
252
|
targetEntity: wft.targetEntity,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAddContentConfig.js","sourceRoot":"","sources":["../../../src/search/getAddContentConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EACL,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"getAddContentConfig.js","sourceRoot":"","sources":["../../../src/search/getAddContentConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,9 @@ export const UserPermissions = [
|
|
|
11
11
|
"hub:user:workspace",
|
|
12
12
|
"hub:user:workspace:overview",
|
|
13
13
|
"hub:user:workspace:settings",
|
|
14
|
+
"hub:user:workspace:content",
|
|
15
|
+
"hub:user:workspace:groups",
|
|
16
|
+
"hub:user:workspace:shared-with-me",
|
|
14
17
|
"hub:user:manage",
|
|
15
18
|
];
|
|
16
19
|
/**
|
|
@@ -48,14 +51,26 @@ export const UserPermissionPolicies = [
|
|
|
48
51
|
},
|
|
49
52
|
{
|
|
50
53
|
permission: "hub:user:workspace:overview",
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
54
|
+
dependencies: ["hub:user:workspace"],
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
permission: "hub:user:workspace:content",
|
|
58
|
+
availability: ["alpha"],
|
|
59
|
+
dependencies: ["hub:user:workspace", "hub:user:owner"],
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
permission: "hub:user:workspace:groups",
|
|
63
|
+
availability: ["alpha"],
|
|
64
|
+
dependencies: ["hub:user:workspace", "hub:user:owner"],
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
permission: "hub:user:workspace:shared-with-me",
|
|
68
|
+
availability: ["alpha"],
|
|
69
|
+
dependencies: ["hub:user:workspace", "hub:user:owner"],
|
|
55
70
|
},
|
|
56
71
|
{
|
|
57
72
|
permission: "hub:user:workspace:settings",
|
|
58
|
-
dependencies: ["hub:user:workspace", "hub:user:
|
|
73
|
+
dependencies: ["hub:user:workspace", "hub:user:owner"],
|
|
59
74
|
},
|
|
60
75
|
{
|
|
61
76
|
permission: "hub:user:manage",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserBusinessRules.js","sourceRoot":"","sources":["../../../../src/users/_internal/UserBusinessRules.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,UAAU;IACV,eAAe;IACf,eAAe;IACf,gBAAgB;IAChB,oBAAoB;IACpB,6BAA6B;IAC7B,6BAA6B;IAC7B,iBAAiB;CACT,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAwB;IACzD;QACE,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACrB;IACD;QACE,UAAU,EAAE,eAAe;QAC3B,YAAY,EAAE,CAAC,UAAU,CAAC;QAC1B,aAAa,EAAE,KAAK;KACrB;IACD;QACE,UAAU,EAAE,gBAAgB;QAC5B,YAAY,EAAE,CAAC,UAAU,CAAC;QAC1B,aAAa,EAAE,IAAI;QACnB,WAAW,EAAE,IAAI;KAClB;IACD;QACE,UAAU,EAAE,eAAe;QAC3B,qDAAqD;QACrD,kEAAkE;QAClE,YAAY,EAAE,CAAC,gBAAgB,CAAC;KACjC;IACD;QACE,UAAU,EAAE,oBAAoB;QAChC,YAAY,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;QACjC,kDAAkD;QAClD,mCAAmC;QACnC,YAAY,EAAE,CAAC,uBAAuB,CAAC;KACxC;IACD;QACE,UAAU,EAAE,6BAA6B;QACzC,
|
|
1
|
+
{"version":3,"file":"UserBusinessRules.js","sourceRoot":"","sources":["../../../../src/users/_internal/UserBusinessRules.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,UAAU;IACV,eAAe;IACf,eAAe;IACf,gBAAgB;IAChB,oBAAoB;IACpB,6BAA6B;IAC7B,6BAA6B;IAC7B,4BAA4B;IAC5B,2BAA2B;IAC3B,mCAAmC;IACnC,iBAAiB;CACT,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAwB;IACzD;QACE,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACrB;IACD;QACE,UAAU,EAAE,eAAe;QAC3B,YAAY,EAAE,CAAC,UAAU,CAAC;QAC1B,aAAa,EAAE,KAAK;KACrB;IACD;QACE,UAAU,EAAE,gBAAgB;QAC5B,YAAY,EAAE,CAAC,UAAU,CAAC;QAC1B,aAAa,EAAE,IAAI;QACnB,WAAW,EAAE,IAAI;KAClB;IACD;QACE,UAAU,EAAE,eAAe;QAC3B,qDAAqD;QACrD,kEAAkE;QAClE,YAAY,EAAE,CAAC,gBAAgB,CAAC;KACjC;IACD;QACE,UAAU,EAAE,oBAAoB;QAChC,YAAY,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;QACjC,kDAAkD;QAClD,mCAAmC;QACnC,YAAY,EAAE,CAAC,uBAAuB,CAAC;KACxC;IACD;QACE,UAAU,EAAE,6BAA6B;QACzC,YAAY,EAAE,CAAC,oBAAoB,CAAC;KACrC;IACD;QACE,UAAU,EAAE,4BAA4B;QACxC,YAAY,EAAE,CAAC,OAAO,CAAC;QACvB,YAAY,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;KACvD;IACD;QACE,UAAU,EAAE,2BAA2B;QACvC,YAAY,EAAE,CAAC,OAAO,CAAC;QACvB,YAAY,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;KACvD;IACD;QACE,UAAU,EAAE,mCAAmC;QAC/C,YAAY,EAAE,CAAC,OAAO,CAAC;QACvB,YAAY,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;KACvD;IACD;QACE,UAAU,EAAE,6BAA6B;QACzC,YAAY,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;KACvD;IACD;QACE,UAAU,EAAE,iBAAiB;QAC7B,YAAY,EAAE,CAAC,eAAe,CAAC;KAChC;CACF,CAAC"}
|
|
@@ -10,6 +10,7 @@ const util_1 = require("../util");
|
|
|
10
10
|
const utils_1 = require("../utils");
|
|
11
11
|
const get_family_1 = require("./get-family");
|
|
12
12
|
const internalContentUtils_1 = require("./_internal/internalContentUtils");
|
|
13
|
+
const getRelativeWorkspaceUrl_1 = require("../core/getRelativeWorkspaceUrl");
|
|
13
14
|
/**
|
|
14
15
|
* Enrich a generic search result
|
|
15
16
|
* @param item
|
|
@@ -71,6 +72,7 @@ async function enrichContentSearchResult(item, include, requestOptions) {
|
|
|
71
72
|
result.links.thumbnail = resources_1.getItemThumbnailUrl(item, requestOptions);
|
|
72
73
|
result.links.self = urls_1.getItemHomeUrl(result.id, requestOptions);
|
|
73
74
|
result.links.siteRelative = internalContentUtils_1.getHubRelativeUrl(result.type, result.id, item.typeKeywords);
|
|
75
|
+
result.links.workspaceRelative = getRelativeWorkspaceUrl_1.getRelativeWorkspaceUrl(result.type, result.id);
|
|
74
76
|
return result;
|
|
75
77
|
}
|
|
76
78
|
exports.enrichContentSearchResult = enrichContentSearchResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/content/search.ts"],"names":[],"mappings":";;;AACA,wDAA6D;AAC7D,wCAAqC;AACrC,4CAAmD;AAEnD,mEAAgE;AAEhE,kCAAyC;AACzC,kCAAiC;AACjC,oCAAiC;AACjC,6CAAyC;AACzC,2EAG0C;
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/content/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,7 +40,6 @@ async function fetchExportImageDownloadFile(options) {
|
|
|
40
40
|
// requestOptions.params.size = `${maxImageWidth},${maxImageHeight}`;
|
|
41
41
|
// }
|
|
42
42
|
const blob = await arcgis_rest_request_1.request(`${entity.url}/exportImage`, requestOptions);
|
|
43
|
-
progressCallback && progressCallback(types_1.DownloadOperationStatus.COMPLETED);
|
|
44
43
|
return {
|
|
45
44
|
type: "blob",
|
|
46
45
|
blob,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchExportImageDownloadFile.js","sourceRoot":"","sources":["../../../../../src/downloads/_internal/file-url-fetchers/fetchExportImageDownloadFile.ts"],"names":[],"mappings":";;;AAAA,mEAAoD;AACpD,uCAKqB;AACrB,gDAAyC;AACzC,wDAAoD;AAIpD;;;;;;;GAOG;AACI,KAAK,UAAU,4BAA4B,CAChD,OAAkC;IAElC,eAAe,CAAC,OAAO,CAAC,CAAC;IAEzB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAC9D,gBAAgB,IAAI,gBAAgB,CAAC,+BAAuB,CAAC,OAAO,CAAC,CAAC;IAEtE,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAC1C,iDAAiD;IACjD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAEzC,MAAM,cAAc,qBAAQ,OAAO,CAAC,cAAc,CAAE,CAAC;IACrD,cAAc,CAAC,UAAU,GAAG,KAAK,CAAC;IAClC,cAAc,CAAC,MAAM,GAAG;QACtB,IAAI,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;QACvC,MAAM,EAAE,GAAG,IAAI,EAAE;QACjB,CAAC,EAAE,OAAO;QACV,MAAM;QACN,UAAU,EACR,sFAAsF;KACzF,CAAC;IAEF,8FAA8F;IAC9F,gGAAgG;IAChG,qCAAqC;IACrC,EAAE;IACF,4CAA4C;IAC5C,mDAAmD;IACnD,yCAAyC;IACzC,uEAAuE;IACvE,IAAI;IAEJ,MAAM,IAAI,GAAS,MAAM,6BAAO,CAAC,GAAG,MAAM,CAAC,GAAG,cAAc,EAAE,cAAc,CAAC,CAAC;IAC9E,
|
|
1
|
+
{"version":3,"file":"fetchExportImageDownloadFile.js","sourceRoot":"","sources":["../../../../../src/downloads/_internal/file-url-fetchers/fetchExportImageDownloadFile.ts"],"names":[],"mappings":";;;AAAA,mEAAoD;AACpD,uCAKqB;AACrB,gDAAyC;AACzC,wDAAoD;AAIpD;;;;;;;GAOG;AACI,KAAK,UAAU,4BAA4B,CAChD,OAAkC;IAElC,eAAe,CAAC,OAAO,CAAC,CAAC;IAEzB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAC9D,gBAAgB,IAAI,gBAAgB,CAAC,+BAAuB,CAAC,OAAO,CAAC,CAAC;IAEtE,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAC1C,iDAAiD;IACjD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAEzC,MAAM,cAAc,qBAAQ,OAAO,CAAC,cAAc,CAAE,CAAC;IACrD,cAAc,CAAC,UAAU,GAAG,KAAK,CAAC;IAClC,cAAc,CAAC,MAAM,GAAG;QACtB,IAAI,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;QACvC,MAAM,EAAE,GAAG,IAAI,EAAE;QACjB,CAAC,EAAE,OAAO;QACV,MAAM;QACN,UAAU,EACR,sFAAsF;KACzF,CAAC;IAEF,8FAA8F;IAC9F,gGAAgG;IAChG,qCAAqC;IACrC,EAAE;IACF,4CAA4C;IAC5C,mDAAmD;IACnD,yCAAyC;IACzC,uEAAuE;IACvE,IAAI;IAEJ,MAAM,IAAI,GAAS,MAAM,6BAAO,CAAC,GAAG,MAAM,CAAC,GAAG,cAAc,EAAE,cAAc,CAAC,CAAC;IAC9E,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,IAAI;QACJ,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,MAA2B,CAAC;KAC/D,CAAC;AACJ,CAAC;AAxCD,oEAwCC;AAED,SAAS,eAAe,CAAC,OAAkC;IACzD,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE7B,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE;QAC1C,MAAM,IAAI,kBAAQ,CAChB,iCAAiC,EACjC,uEAAuE,CACxE,CAAC;KACH;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAAkC;IAElC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACrC,MAAM,YAAY,GAAG,kBAAO,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;IAEpE,sEAAsE;IACtE,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,QAAQ,EAAE;QACZ,MAAM,GAAG,QAAyB,CAAC;KACpC;SAAM,IAAI,YAAY,EAAE;QACvB,MAAM,GAAG,YAAY,CAAC;KACvB;IAED,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,kBAAQ,CAChB,iCAAiC,EACjC,6CAA6C,CAC9C,CAAC;KACH;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CACtB,MAA2B,EAC3B,MAAyB;IAEzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,kBAAO,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,6BAAqB,CAAC,GAAG,CAAC;QAC1D,CAAC,CAAC,+EAA+E;YAC/E,6BAAqB,CAAC,GAAG;QAC3B,CAAC,CAAC,MAAM,CAAC;IACX,OAAO,GAAG,IAAI,IAAI,SAAS,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -3,10 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.fetchHubApiDownloadFile = void 0;
|
|
4
4
|
const HubError_1 = require("../../../HubError");
|
|
5
5
|
const get_prop_1 = require("../../../objects/get-prop");
|
|
6
|
+
const wait_1 = require("../../../utils/wait");
|
|
6
7
|
const types_1 = require("../../types");
|
|
7
8
|
/**
|
|
8
9
|
* @private
|
|
9
|
-
* Fetches a download file url from the Hub Download API
|
|
10
|
+
* Fetches a download file url from the Hub Download API. If we know the file will be served from
|
|
11
|
+
* a cache, we also return the status of the cache.
|
|
10
12
|
*
|
|
11
13
|
* NOTE: The Hub Download API only works with a certain subset of Feature and Map services
|
|
12
14
|
* and performs different operations (i.e., calling createReplica or paging the service's
|
|
@@ -16,13 +18,19 @@ const types_1 = require("../../types");
|
|
|
16
18
|
* interface for downloading data from any service supported by the Hub Download API.
|
|
17
19
|
*
|
|
18
20
|
* @param options options for refining / filtering the resulting download file
|
|
19
|
-
* @returns
|
|
21
|
+
* @returns the url to download the file and cache status
|
|
20
22
|
*/
|
|
21
23
|
async function fetchHubApiDownloadFile(options) {
|
|
22
24
|
validateOptions(options);
|
|
23
25
|
const requestUrl = getDownloadApiRequestUrl(options);
|
|
24
|
-
const { pollInterval, progressCallback } = options;
|
|
25
|
-
|
|
26
|
+
const { pollInterval, updateCache, progressCallback } = options;
|
|
27
|
+
let cacheQueryParam;
|
|
28
|
+
if (updateCache) {
|
|
29
|
+
// The download api has 2 query params that can be used for controlling cache behavior.
|
|
30
|
+
// This one should only be used as part of an initial request to update the cache
|
|
31
|
+
cacheQueryParam = "updateCache";
|
|
32
|
+
}
|
|
33
|
+
return pollDownloadApi(requestUrl, pollInterval, cacheQueryParam, progressCallback);
|
|
26
34
|
}
|
|
27
35
|
exports.fetchHubApiDownloadFile = fetchHubApiDownloadFile;
|
|
28
36
|
function validateOptions(options) {
|
|
@@ -45,7 +53,7 @@ function validateOptions(options) {
|
|
|
45
53
|
* @returns a download api url that can be polled
|
|
46
54
|
*/
|
|
47
55
|
function getDownloadApiRequestUrl(options) {
|
|
48
|
-
const { entity, format, context, layers, geometry, where } = options;
|
|
56
|
+
const { entity, format, context, layers, geometry, where, updateCache } = options;
|
|
49
57
|
const searchParams = new URLSearchParams({
|
|
50
58
|
redirect: "false",
|
|
51
59
|
layers: layers[0].toString(),
|
|
@@ -70,11 +78,21 @@ function getDownloadApiRequestUrl(options) {
|
|
|
70
78
|
* Polls the Hub Download API until the download is ready, then returns the download file URL
|
|
71
79
|
*
|
|
72
80
|
* @param requestUrl Hub Download Api URL to poll
|
|
81
|
+
* @param pollInterval interval in milliseconds to poll for job completion
|
|
82
|
+
* @param cacheQueryParam an optional query param to control cache behavior. 'updateCache' should
|
|
83
|
+
* only be used with the initial request when a download cache update is desired. All subsequent
|
|
84
|
+
* requests should use'trackCacheUpdate' to follow the progress of the cache update.
|
|
85
|
+
* for subsequent requests when polling the progress of a cache update.
|
|
73
86
|
* @param progressCallback an optional callback to report download generation progress
|
|
74
87
|
* @returns the final file URL
|
|
75
88
|
*/
|
|
76
|
-
async function pollDownloadApi(requestUrl, pollInterval, progressCallback) {
|
|
77
|
-
|
|
89
|
+
async function pollDownloadApi(requestUrl, pollInterval, cacheQueryParam, progressCallback) {
|
|
90
|
+
// If requested, append the cache query param to the request URL
|
|
91
|
+
let withCacheQueryParam = requestUrl;
|
|
92
|
+
if (cacheQueryParam) {
|
|
93
|
+
withCacheQueryParam = `${requestUrl}&${cacheQueryParam}=true`;
|
|
94
|
+
}
|
|
95
|
+
const response = await fetch(withCacheQueryParam);
|
|
78
96
|
if (!response.ok) {
|
|
79
97
|
const errorBody = await response.json();
|
|
80
98
|
// TODO: Add standarized messageId when available
|
|
@@ -82,22 +100,29 @@ async function pollDownloadApi(requestUrl, pollInterval, progressCallback) {
|
|
|
82
100
|
rawMessage: errorBody.message,
|
|
83
101
|
});
|
|
84
102
|
}
|
|
85
|
-
const { status, progressInPercent, resultUrl } = await response.json();
|
|
103
|
+
const { status, progressInPercent, resultUrl, cacheStatus, } = await response.json();
|
|
86
104
|
const operationStatus = toDownloadOperationStatus(status);
|
|
87
105
|
if (operationStatus === types_1.DownloadOperationStatus.FAILED) {
|
|
88
106
|
throw new HubError_1.default("fetchHubApiDownloadFileUrl", "Download operation failed with a 200");
|
|
89
107
|
}
|
|
90
|
-
progressCallback && progressCallback(operationStatus, progressInPercent);
|
|
91
|
-
// Operation complete, return the download URL
|
|
92
108
|
if (resultUrl) {
|
|
109
|
+
// Operation complete, return the download URL and cache status
|
|
93
110
|
return {
|
|
94
111
|
type: "url",
|
|
95
112
|
href: resultUrl,
|
|
113
|
+
cacheStatus,
|
|
96
114
|
};
|
|
97
115
|
}
|
|
98
|
-
// Operation still in progress
|
|
99
|
-
|
|
100
|
-
|
|
116
|
+
// Operation still in progress. Report progress if a callback was provided and poll again.
|
|
117
|
+
progressCallback && progressCallback(operationStatus, progressInPercent);
|
|
118
|
+
await wait_1.wait(pollInterval);
|
|
119
|
+
let updatedCacheQueryParam;
|
|
120
|
+
if (cacheQueryParam) {
|
|
121
|
+
// After an initial request with ?updateCache=true, we need to switch to ?trackCacheUpdate=true.
|
|
122
|
+
// This enables us to follow the progress of the cache update without causing an infinite update loop.
|
|
123
|
+
updatedCacheQueryParam = "trackCacheUpdate";
|
|
124
|
+
}
|
|
125
|
+
return pollDownloadApi(requestUrl, pollInterval, updatedCacheQueryParam, progressCallback);
|
|
101
126
|
}
|
|
102
127
|
/**
|
|
103
128
|
* @private
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchHubApiDownloadFile.js","sourceRoot":"","sources":["../../../../../src/downloads/_internal/file-url-fetchers/fetchHubApiDownloadFile.ts"],"names":[],"mappings":";;;AAAA,gDAAyC;AACzC,wDAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"fetchHubApiDownloadFile.js","sourceRoot":"","sources":["../../../../../src/downloads/_internal/file-url-fetchers/fetchHubApiDownloadFile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/downloads/types.ts"],"names":[],"mappings":";;;AAGA;;;;GAIG;AACU,QAAA,mBAAmB,GAAG;IACjC,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,SAAS,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC;QACpC,kBAAkB,EAAE,IAAI;KACzB;IACD,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,SAAS,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC;QACpC,kBAAkB,EAAE,KAAK;KAC1B;IACD,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,CAAC,WAAW,CAAC;QACxB,kBAAkB,EAAE,IAAI;KACzB;IACD,eAAe,EAAE;QACf,IAAI,EAAE,kBAAkB;QACxB,SAAS,EAAE,CAAC,kBAAkB,CAAC;QAC/B,kBAAkB,EAAE,IAAI;KACzB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,CAAC,SAAS,CAAC;QACtB,kBAAkB,EAAE,KAAK;KAC1B;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,CAAC,iBAAiB,CAAC;QAC9B,kBAAkB,EAAE,IAAI;KACzB;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,oBAAoB;QAC1B,SAAS,EAAE,CAAC,oBAAoB,CAAC;QACjC,kBAAkB,EAAE,IAAI;KACzB;CAOF,CAAC;AAKF;;GAEG;AACH,IAAY,qBA0BX;AA1BD,WAAY,qBAAqB;IAC/B,wBAAwB;IACxB,oCAAW,CAAA;IACX,oCAAW,CAAA;IACX,oCAAW,CAAA;IACX,2CAAkB,CAAA;IAClB,oCAAW,CAAA;IACX,sCAAa,CAAA;IACb,wCAAe,CAAA;IACf,sCAAa,CAAA;IACb,wCAAe,CAAA;IACf,oCAAW,CAAA;IACX,oCAAW,CAAA;IACX,sCAAa,CAAA;IAEb,gCAAgC;IAChC,oCAAW,CAAA;IACX,wCAAe,CAAA;IACf,iEAAwC,CAAA;IACxC,6CAAoB,CAAA;IACpB,4CAAmB,CAAA;IACnB,mDAA0B,CAAA;IAC1B,sCAAa,CAAA;IACb,oCAAW,CAAA;IACX,gDAAuB,CAAA;IACvB,0CAAiB,CAAA;AACnB,CAAC,EA1BW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QA0BhC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/downloads/types.ts"],"names":[],"mappings":";;;AAGA;;;;GAIG;AACU,QAAA,mBAAmB,GAAG;IACjC,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,SAAS,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC;QACpC,kBAAkB,EAAE,IAAI;KACzB;IACD,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,SAAS,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC;QACpC,kBAAkB,EAAE,KAAK;KAC1B;IACD,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,CAAC,WAAW,CAAC;QACxB,kBAAkB,EAAE,IAAI;KACzB;IACD,eAAe,EAAE;QACf,IAAI,EAAE,kBAAkB;QACxB,SAAS,EAAE,CAAC,kBAAkB,CAAC;QAC/B,kBAAkB,EAAE,IAAI;KACzB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,CAAC,SAAS,CAAC;QACtB,kBAAkB,EAAE,KAAK;KAC1B;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,CAAC,iBAAiB,CAAC;QAC9B,kBAAkB,EAAE,IAAI;KACzB;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,oBAAoB;QAC1B,SAAS,EAAE,CAAC,oBAAoB,CAAC;QACjC,kBAAkB,EAAE,IAAI;KACzB;CAOF,CAAC;AAKF;;GAEG;AACH,IAAY,qBA0BX;AA1BD,WAAY,qBAAqB;IAC/B,wBAAwB;IACxB,oCAAW,CAAA;IACX,oCAAW,CAAA;IACX,oCAAW,CAAA;IACX,2CAAkB,CAAA;IAClB,oCAAW,CAAA;IACX,sCAAa,CAAA;IACb,wCAAe,CAAA;IACf,sCAAa,CAAA;IACb,wCAAe,CAAA;IACf,oCAAW,CAAA;IACX,oCAAW,CAAA;IACX,sCAAa,CAAA;IAEb,gCAAgC;IAChC,oCAAW,CAAA;IACX,wCAAe,CAAA;IACf,iEAAwC,CAAA;IACxC,6CAAoB,CAAA;IACpB,4CAAmB,CAAA;IACnB,mDAA0B,CAAA;IAC1B,sCAAa,CAAA;IACb,oCAAW,CAAA;IACX,gDAAuB,CAAA;IACvB,0CAAiB,CAAA;AACnB,CAAC,EA1BW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QA0BhC;AA4GD;;;GAGG;AACH,IAAY,uBAMX;AAND,WAAY,uBAAuB;IACjC,8CAAmB,CAAA;IACnB,oDAAyB,CAAA;IACzB,oDAAyB,CAAA;IACzB,kDAAuB,CAAA;IACvB,4CAAiB,CAAA;AACnB,CAAC,EANW,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAMlC;AAoBD;;GAEG;AACH,MAAa,sBAAuB,SAAQ,KAAK;IAK/C,YAAY,OAAuC;QACjD,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACrC,CAAC;CACF;AAZD,wDAYC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getUserGroupsByMembership = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Retrieves the user's groups categorized by their membership type.
|
|
6
|
+
*
|
|
7
|
+
* @param user - The user object containing group information.
|
|
8
|
+
* @returns An object categorizing the user's groups into `owner`, `admin`, and `member`.
|
|
9
|
+
*
|
|
10
|
+
* The function processes the user's groups and classifies them based on the membership type:
|
|
11
|
+
* - `owner`: Groups where the user is an owner.
|
|
12
|
+
* - `admin`: Groups where the user is an admin.
|
|
13
|
+
* - `member`: Groups where the user is a member and the group is not view-only.
|
|
14
|
+
*
|
|
15
|
+
* Note: The `none` membership type is not considered as it is not expected to be present in the user's groups.
|
|
16
|
+
*/
|
|
17
|
+
function getUserGroupsByMembership(user) {
|
|
18
|
+
const response = {
|
|
19
|
+
owner: [],
|
|
20
|
+
member: [],
|
|
21
|
+
admin: [],
|
|
22
|
+
};
|
|
23
|
+
// get the user's groups
|
|
24
|
+
const userGroups = user.groups || [];
|
|
25
|
+
// loop through the groups and determine if the user is an admin or normal member
|
|
26
|
+
// and add into the response
|
|
27
|
+
userGroups.forEach((group) => {
|
|
28
|
+
var _a, _b, _c;
|
|
29
|
+
if (((_a = group.userMembership) === null || _a === void 0 ? void 0 : _a.memberType) === "owner") {
|
|
30
|
+
response.owner.push(group.id);
|
|
31
|
+
}
|
|
32
|
+
if (((_b = group.userMembership) === null || _b === void 0 ? void 0 : _b.memberType) === "admin") {
|
|
33
|
+
response.admin.push(group.id);
|
|
34
|
+
}
|
|
35
|
+
// If user is just a member and the group is not view only
|
|
36
|
+
if (((_c = group.userMembership) === null || _c === void 0 ? void 0 : _c.memberType) === "member" && !group.isViewOnly) {
|
|
37
|
+
response.member.push(group.id);
|
|
38
|
+
}
|
|
39
|
+
// there is a `none` option in the userMembership but
|
|
40
|
+
// that would never be returned in the user's groups
|
|
41
|
+
// so we don't need to check for it
|
|
42
|
+
});
|
|
43
|
+
return response;
|
|
44
|
+
}
|
|
45
|
+
exports.getUserGroupsByMembership = getUserGroupsByMembership;
|
|
46
|
+
//# sourceMappingURL=getUserGroupsByMembership.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getUserGroupsByMembership.js","sourceRoot":"","sources":["../../../../src/search/_internal/getUserGroupsByMembership.ts"],"names":[],"mappings":";;;AAGA;;;;;;;;;;;;GAYG;AAEH,SAAgB,yBAAyB,CAAC,IAAW;IACnD,MAAM,QAAQ,GAAwB;QACpC,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;KACV,CAAC;IACF,wBAAwB;IACxB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IACrC,iFAAiF;IACjF,4BAA4B;IAC5B,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;;QAC3B,IAAI,OAAA,KAAK,CAAC,cAAc,0CAAE,UAAU,MAAK,OAAO,EAAE;YAChD,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SAC/B;QACD,IAAI,OAAA,KAAK,CAAC,cAAc,0CAAE,UAAU,MAAK,OAAO,EAAE;YAChD,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SAC/B;QACD,0DAA0D;QAC1D,IAAI,OAAA,KAAK,CAAC,cAAc,0CAAE,UAAU,MAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YACtE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SAChC;QACD,qDAAqD;QACrD,oDAAoD;QACpD,mCAAmC;IACrC,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC;AA1BD,8DA0BC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getUserGroupsFromQuery = void 0;
|
|
4
4
|
const getPredicateValues_1 = require("../getPredicateValues");
|
|
5
|
+
const getUserGroupsByMembership_1 = require("./getUserGroupsByMembership");
|
|
5
6
|
/**
|
|
6
7
|
* Given a query and a user, return an object with the set of groups
|
|
7
8
|
* that are in the Query, and which the user is a member of, split by
|
|
@@ -12,7 +13,7 @@ const getPredicateValues_1 = require("../getPredicateValues");
|
|
|
12
13
|
* @returns
|
|
13
14
|
*/
|
|
14
15
|
function getUserGroupsFromQuery(query, user) {
|
|
15
|
-
|
|
16
|
+
let response = {
|
|
16
17
|
owner: [],
|
|
17
18
|
member: [],
|
|
18
19
|
admin: [],
|
|
@@ -20,30 +21,28 @@ function getUserGroupsFromQuery(query, user) {
|
|
|
20
21
|
// collect up all the group predicates from the query's filters
|
|
21
22
|
// NOTE: this only pulls the all and any predicates
|
|
22
23
|
const groups = getPredicateValues_1.getPredicateValues("group", query);
|
|
23
|
-
// get the user's groups
|
|
24
|
-
const
|
|
25
|
-
//
|
|
26
|
-
//
|
|
27
|
-
groups.
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
});
|
|
24
|
+
// get the user's groups by membership
|
|
25
|
+
const allUserGroups = getUserGroupsByMembership_1.getUserGroupsByMembership(user);
|
|
26
|
+
// if there are groups in the query, we subset the user's groups
|
|
27
|
+
// based on the groups in the query
|
|
28
|
+
if (groups.length) {
|
|
29
|
+
const props = [
|
|
30
|
+
"owner",
|
|
31
|
+
"admin",
|
|
32
|
+
"member",
|
|
33
|
+
];
|
|
34
|
+
groups.forEach((groupId) => {
|
|
35
|
+
// check each group type and add the group to the response if the user is a member
|
|
36
|
+
props.forEach((prop) => {
|
|
37
|
+
if (allUserGroups[prop].includes(groupId)) {
|
|
38
|
+
response[prop].push(groupId);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
response = allUserGroups;
|
|
45
|
+
}
|
|
47
46
|
return response;
|
|
48
47
|
}
|
|
49
48
|
exports.getUserGroupsFromQuery = getUserGroupsFromQuery;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUserGroupsFromQuery.js","sourceRoot":"","sources":["../../../../src/search/_internal/getUserGroupsFromQuery.ts"],"names":[],"mappings":";;;AACA,8DAA2D;AAG3D;;;;;;;;GAQG;AAEH,SAAgB,sBAAsB,CACpC,KAAa,EACb,IAAW;IAEX,
|
|
1
|
+
{"version":3,"file":"getUserGroupsFromQuery.js","sourceRoot":"","sources":["../../../../src/search/_internal/getUserGroupsFromQuery.ts"],"names":[],"mappings":";;;AACA,8DAA2D;AAG3D,2EAAwE;AACxE;;;;;;;;GAQG;AAEH,SAAgB,sBAAsB,CACpC,KAAa,EACb,IAAW;IAEX,IAAI,QAAQ,GAAwB;QAClC,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;KACV,CAAC;IACF,+DAA+D;IAC/D,mDAAmD;IACnD,MAAM,MAAM,GAAa,uCAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5D,sCAAsC;IACtC,MAAM,aAAa,GAAG,qDAAyB,CAAC,IAAI,CAAC,CAAC;IACtD,gEAAgE;IAChE,mCAAmC;IACnC,IAAI,MAAM,CAAC,MAAM,EAAE;QACjB,MAAM,KAAK,GAAqC;YAC9C,OAAO;YACP,OAAO;YACP,QAAQ;SACT,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACzB,kFAAkF;YAClF,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrB,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;oBACzC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC9B;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;KACJ;SAAM;QACL,QAAQ,GAAG,aAAa,CAAC;KAC1B;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAnCD,wDAmCC"}
|
|
@@ -10,4 +10,5 @@ tslib_1.__exportStar(require("./hubSearchEvents"), exports);
|
|
|
10
10
|
tslib_1.__exportStar(require("./hubSearchEventAttendees"), exports);
|
|
11
11
|
tslib_1.__exportStar(require("./getWorkflowForType"), exports);
|
|
12
12
|
tslib_1.__exportStar(require("./getCatalogGroups"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./getUserGroupsByMembership"), exports);
|
|
13
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/search/_internal/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC;AACpC,2DAAiC;AACjC,+DAAqC;AACrC,8DAAoC;AACpC,8DAAoC;AACpC,4DAAkC;AAClC,oEAA0C;AAC1C,+DAAqC;AACrC,6DAAmC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/search/_internal/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC;AACpC,2DAAiC;AACjC,+DAAqC;AACrC,8DAAoC;AACpC,8DAAoC;AACpC,4DAAkC;AAClC,oEAA0C;AAC1C,+DAAqC;AACrC,6DAAmC;AACnC,sEAA4C"}
|
|
@@ -8,6 +8,7 @@ const getPredicateValues_1 = require("./getPredicateValues");
|
|
|
8
8
|
const getWorkflowForType_1 = require("./_internal/getWorkflowForType");
|
|
9
9
|
const get_prop_1 = require("../objects/get-prop");
|
|
10
10
|
const getUserGroupsFromQuery_1 = require("./_internal/getUserGroupsFromQuery");
|
|
11
|
+
const getUserGroupsByMembership_1 = require("./_internal/getUserGroupsByMembership");
|
|
11
12
|
const _internal_1 = require("./_internal");
|
|
12
13
|
const EmptyAddContentWorkflowConfig = {
|
|
13
14
|
create: null,
|
|
@@ -120,6 +121,9 @@ function getAddContentConfigForQuery(query, context) {
|
|
|
120
121
|
else if (query.targetEntity === "event") {
|
|
121
122
|
return getAddContentConfigForEventQuery(query, context);
|
|
122
123
|
}
|
|
124
|
+
else if (query.targetEntity === "group") {
|
|
125
|
+
return getAddContentConfigForGroupQuery(query, context);
|
|
126
|
+
}
|
|
123
127
|
else {
|
|
124
128
|
const response = util_1.cloneObject(EmptyAddContentWorkflowConfig);
|
|
125
129
|
response.state = "disabled";
|
|
@@ -127,6 +131,27 @@ function getAddContentConfigForQuery(query, context) {
|
|
|
127
131
|
return response;
|
|
128
132
|
}
|
|
129
133
|
}
|
|
134
|
+
function getAddContentConfigForGroupQuery(_query, context) {
|
|
135
|
+
const response = util_1.cloneObject(EmptyAddContentWorkflowConfig);
|
|
136
|
+
// groups can be created or added but the user needs permission
|
|
137
|
+
const chk = checkPermission_1.checkPermission("hub:group:create", context);
|
|
138
|
+
if (chk.access) {
|
|
139
|
+
response.create = {
|
|
140
|
+
targetEntity: "group",
|
|
141
|
+
workflow: "create",
|
|
142
|
+
types: ["Group"],
|
|
143
|
+
};
|
|
144
|
+
response.state = "enabled";
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
response.state = "disabled";
|
|
148
|
+
response.reason = "no-permission";
|
|
149
|
+
if (chk.response === "assertion-failed") {
|
|
150
|
+
response.reason = "too-many-groups";
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return response;
|
|
154
|
+
}
|
|
130
155
|
/**
|
|
131
156
|
* Specific logic for targetEntity="event"
|
|
132
157
|
* @param query
|
|
@@ -175,13 +200,27 @@ function getAddContentConfigForEventQuery(query, context) {
|
|
|
175
200
|
*/
|
|
176
201
|
function getAddContentConfigForItemQuery(query, context) {
|
|
177
202
|
const response = util_1.cloneObject(EmptyAddContentWorkflowConfig);
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
203
|
+
// We need to return groups by membership so we can show the group sharing ux
|
|
204
|
+
let userGroups = {
|
|
205
|
+
owner: [],
|
|
206
|
+
admin: [],
|
|
207
|
+
member: [],
|
|
208
|
+
};
|
|
209
|
+
// If the query has groups, then we need to check that the user is a member of those groups
|
|
210
|
+
const groups = getPredicateValues_1.getPredicateValues("group", query);
|
|
211
|
+
if (groups.length) {
|
|
212
|
+
userGroups = getUserGroupsFromQuery_1.getUserGroupsFromQuery(query, context.currentUser);
|
|
213
|
+
if (!userGroups.owner.length &&
|
|
214
|
+
!userGroups.admin.length &&
|
|
215
|
+
!userGroups.member.length) {
|
|
216
|
+
response.state = "disabled";
|
|
217
|
+
response.reason = "not-in-groups";
|
|
218
|
+
return response;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
// we just need all the user's groups, as IGroupsByMembership object
|
|
223
|
+
userGroups = getUserGroupsByMembership_1.getUserGroupsByMembership(context.currentUser);
|
|
185
224
|
}
|
|
186
225
|
// Get all the types from all the the predicates in all of the filters
|
|
187
226
|
let queryTypes = getPredicateValues_1.getPredicateValues("type", query);
|
|
@@ -208,7 +247,10 @@ function getAddContentConfigForItemQuery(query, context) {
|
|
|
208
247
|
}
|
|
209
248
|
response.create.types.push(wft.type);
|
|
210
249
|
}
|
|
211
|
-
if
|
|
250
|
+
// Only show the add existing workflows if the query includes groups
|
|
251
|
+
// otherwise the query is defined by other criteria that we likely can't
|
|
252
|
+
// handle at this time (e.g. items owned by current user)
|
|
253
|
+
if (wft.workflows.includes("existing") && groups.length) {
|
|
212
254
|
if (!response.existing) {
|
|
213
255
|
response.existing = {
|
|
214
256
|
targetEntity: wft.targetEntity,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAddContentConfig.js","sourceRoot":"","sources":["../../../src/search/getAddContentConfig.ts"],"names":[],"mappings":";;;AACA,oEAAiE;AACjE,kCAAsC;AACtC,6EAA0E;AAE1E,6DAA0D;AAC1D,uEAGwC;AACxC,kDAA8C;AAC9C,+EAA4E;
|
|
1
|
+
{"version":3,"file":"getAddContentConfig.js","sourceRoot":"","sources":["../../../src/search/getAddContentConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,9 @@ exports.UserPermissions = [
|
|
|
14
14
|
"hub:user:workspace",
|
|
15
15
|
"hub:user:workspace:overview",
|
|
16
16
|
"hub:user:workspace:settings",
|
|
17
|
+
"hub:user:workspace:content",
|
|
18
|
+
"hub:user:workspace:groups",
|
|
19
|
+
"hub:user:workspace:shared-with-me",
|
|
17
20
|
"hub:user:manage",
|
|
18
21
|
];
|
|
19
22
|
/**
|
|
@@ -51,14 +54,26 @@ exports.UserPermissionPolicies = [
|
|
|
51
54
|
},
|
|
52
55
|
{
|
|
53
56
|
permission: "hub:user:workspace:overview",
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
57
|
+
dependencies: ["hub:user:workspace"],
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
permission: "hub:user:workspace:content",
|
|
61
|
+
availability: ["alpha"],
|
|
62
|
+
dependencies: ["hub:user:workspace", "hub:user:owner"],
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
permission: "hub:user:workspace:groups",
|
|
66
|
+
availability: ["alpha"],
|
|
67
|
+
dependencies: ["hub:user:workspace", "hub:user:owner"],
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
permission: "hub:user:workspace:shared-with-me",
|
|
71
|
+
availability: ["alpha"],
|
|
72
|
+
dependencies: ["hub:user:workspace", "hub:user:owner"],
|
|
58
73
|
},
|
|
59
74
|
{
|
|
60
75
|
permission: "hub:user:workspace:settings",
|
|
61
|
-
dependencies: ["hub:user:workspace", "hub:user:
|
|
76
|
+
dependencies: ["hub:user:workspace", "hub:user:owner"],
|
|
62
77
|
},
|
|
63
78
|
{
|
|
64
79
|
permission: "hub:user:manage",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserBusinessRules.js","sourceRoot":"","sources":["../../../../src/users/_internal/UserBusinessRules.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACU,QAAA,eAAe,GAAG;IAC7B,UAAU;IACV,eAAe;IACf,eAAe;IACf,gBAAgB;IAChB,oBAAoB;IACpB,6BAA6B;IAC7B,6BAA6B;IAC7B,iBAAiB;CACT,CAAC;AAEX;;;GAGG;AACU,QAAA,sBAAsB,GAAwB;IACzD;QACE,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACrB;IACD;QACE,UAAU,EAAE,eAAe;QAC3B,YAAY,EAAE,CAAC,UAAU,CAAC;QAC1B,aAAa,EAAE,KAAK;KACrB;IACD;QACE,UAAU,EAAE,gBAAgB;QAC5B,YAAY,EAAE,CAAC,UAAU,CAAC;QAC1B,aAAa,EAAE,IAAI;QACnB,WAAW,EAAE,IAAI;KAClB;IACD;QACE,UAAU,EAAE,eAAe;QAC3B,qDAAqD;QACrD,kEAAkE;QAClE,YAAY,EAAE,CAAC,gBAAgB,CAAC;KACjC;IACD;QACE,UAAU,EAAE,oBAAoB;QAChC,YAAY,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;QACjC,kDAAkD;QAClD,mCAAmC;QACnC,YAAY,EAAE,CAAC,uBAAuB,CAAC;KACxC;IACD;QACE,UAAU,EAAE,6BAA6B;QACzC,
|
|
1
|
+
{"version":3,"file":"UserBusinessRules.js","sourceRoot":"","sources":["../../../../src/users/_internal/UserBusinessRules.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACU,QAAA,eAAe,GAAG;IAC7B,UAAU;IACV,eAAe;IACf,eAAe;IACf,gBAAgB;IAChB,oBAAoB;IACpB,6BAA6B;IAC7B,6BAA6B;IAC7B,4BAA4B;IAC5B,2BAA2B;IAC3B,mCAAmC;IACnC,iBAAiB;CACT,CAAC;AAEX;;;GAGG;AACU,QAAA,sBAAsB,GAAwB;IACzD;QACE,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACrB;IACD;QACE,UAAU,EAAE,eAAe;QAC3B,YAAY,EAAE,CAAC,UAAU,CAAC;QAC1B,aAAa,EAAE,KAAK;KACrB;IACD;QACE,UAAU,EAAE,gBAAgB;QAC5B,YAAY,EAAE,CAAC,UAAU,CAAC;QAC1B,aAAa,EAAE,IAAI;QACnB,WAAW,EAAE,IAAI;KAClB;IACD;QACE,UAAU,EAAE,eAAe;QAC3B,qDAAqD;QACrD,kEAAkE;QAClE,YAAY,EAAE,CAAC,gBAAgB,CAAC;KACjC;IACD;QACE,UAAU,EAAE,oBAAoB;QAChC,YAAY,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;QACjC,kDAAkD;QAClD,mCAAmC;QACnC,YAAY,EAAE,CAAC,uBAAuB,CAAC;KACxC;IACD;QACE,UAAU,EAAE,6BAA6B;QACzC,YAAY,EAAE,CAAC,oBAAoB,CAAC;KACrC;IACD;QACE,UAAU,EAAE,4BAA4B;QACxC,YAAY,EAAE,CAAC,OAAO,CAAC;QACvB,YAAY,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;KACvD;IACD;QACE,UAAU,EAAE,2BAA2B;QACvC,YAAY,EAAE,CAAC,OAAO,CAAC;QACvB,YAAY,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;KACvD;IACD;QACE,UAAU,EAAE,mCAAmC;QAC/C,YAAY,EAAE,CAAC,OAAO,CAAC;QACvB,YAAY,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;KACvD;IACD;QACE,UAAU,EAAE,6BAA6B;QACzC,YAAY,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;KACvD;IACD;QACE,UAAU,EAAE,iBAAiB;QAC7B,YAAY,EAAE,CAAC,eAAe,CAAC;KAChC;CACF,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { IFetchDownloadFileOptions, IFetchDownloadFileResponse } from "../../types";
|
|
2
2
|
/**
|
|
3
3
|
* @private
|
|
4
|
-
* Fetches a download file url from the Hub Download API
|
|
4
|
+
* Fetches a download file url from the Hub Download API. If we know the file will be served from
|
|
5
|
+
* a cache, we also return the status of the cache.
|
|
5
6
|
*
|
|
6
7
|
* NOTE: The Hub Download API only works with a certain subset of Feature and Map services
|
|
7
8
|
* and performs different operations (i.e., calling createReplica or paging the service's
|
|
@@ -11,6 +12,6 @@ import { IFetchDownloadFileOptions, IFetchDownloadFileResponse } from "../../typ
|
|
|
11
12
|
* interface for downloading data from any service supported by the Hub Download API.
|
|
12
13
|
*
|
|
13
14
|
* @param options options for refining / filtering the resulting download file
|
|
14
|
-
* @returns
|
|
15
|
+
* @returns the url to download the file and cache status
|
|
15
16
|
*/
|
|
16
17
|
export declare function fetchHubApiDownloadFile(options: IFetchDownloadFileOptions): Promise<IFetchDownloadFileResponse>;
|
|
@@ -113,16 +113,49 @@ export interface IFetchDownloadFileOptions {
|
|
|
113
113
|
where?: string;
|
|
114
114
|
progressCallback?: downloadProgressCallback;
|
|
115
115
|
pollInterval?: number;
|
|
116
|
+
updateCache?: boolean;
|
|
116
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* Response object for the fetchDownloadFile operation.
|
|
120
|
+
* The response object will contain either a Blob or a URL,
|
|
121
|
+
* depending on the type of download operation that was performed.
|
|
122
|
+
*/
|
|
117
123
|
export declare type IFetchDownloadFileResponse = IFetchDownloadFileBlobResponse | IFetchDownloadFileUrlResponse;
|
|
124
|
+
/**
|
|
125
|
+
* Base interface for all fetchDownloadFile response objects.
|
|
126
|
+
*/
|
|
118
127
|
interface IBaseFetchDownloadFileResponse {
|
|
119
128
|
type: "blob" | "url";
|
|
129
|
+
/**
|
|
130
|
+
* If the response comes from our cache rather than a live download,
|
|
131
|
+
* indicates the status of the cached file
|
|
132
|
+
*/
|
|
133
|
+
cacheStatus?: DownloadCacheStatus;
|
|
120
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* Represents the status of a cached download file.
|
|
137
|
+
* - `ready` indicates that the file has up-to-date data
|
|
138
|
+
* - `ready_unknown` indicates that we don't know if the file is up-to-date
|
|
139
|
+
* - `stale` indicates that the file is out-of-date
|
|
140
|
+
*/
|
|
141
|
+
export declare type DownloadCacheStatus = "ready" | "ready_unknown" | "stale";
|
|
142
|
+
/**
|
|
143
|
+
* Response object for the fetchDownloadFile operation when the response is a Blob.
|
|
144
|
+
*/
|
|
121
145
|
export interface IFetchDownloadFileBlobResponse extends IBaseFetchDownloadFileResponse {
|
|
122
146
|
type: "blob";
|
|
147
|
+
/**
|
|
148
|
+
* The Blob object that contains the download file.
|
|
149
|
+
*/
|
|
123
150
|
blob: Blob;
|
|
151
|
+
/**
|
|
152
|
+
* The name to assign to the file when saving it to disk.
|
|
153
|
+
*/
|
|
124
154
|
filename: string;
|
|
125
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Response object for the fetchDownloadFile operation when the response is a URL.
|
|
158
|
+
*/
|
|
126
159
|
export interface IFetchDownloadFileUrlResponse extends IBaseFetchDownloadFileResponse {
|
|
127
160
|
type: "url";
|
|
128
161
|
href: string;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IUser } from "@esri/arcgis-rest-types";
|
|
2
|
+
import { IGroupsByMembership } from "../types/IGroupsByMembership";
|
|
3
|
+
/**
|
|
4
|
+
* Retrieves the user's groups categorized by their membership type.
|
|
5
|
+
*
|
|
6
|
+
* @param user - The user object containing group information.
|
|
7
|
+
* @returns An object categorizing the user's groups into `owner`, `admin`, and `member`.
|
|
8
|
+
*
|
|
9
|
+
* The function processes the user's groups and classifies them based on the membership type:
|
|
10
|
+
* - `owner`: Groups where the user is an owner.
|
|
11
|
+
* - `admin`: Groups where the user is an admin.
|
|
12
|
+
* - `member`: Groups where the user is a member and the group is not view-only.
|
|
13
|
+
*
|
|
14
|
+
* Note: The `none` membership type is not considered as it is not expected to be present in the user's groups.
|
|
15
|
+
*/
|
|
16
|
+
export declare function getUserGroupsByMembership(user: IUser): IGroupsByMembership;
|
|
@@ -14,7 +14,7 @@ export interface IAddContentWorkflowConfig {
|
|
|
14
14
|
upload?: IAddContentUploadWorkflowConfig;
|
|
15
15
|
existing?: IAddContentExistingWorkflowConfig;
|
|
16
16
|
state: "enabled" | "disabled";
|
|
17
|
-
reason?: "no-permission" | "not-in-groups" | "invalid-object" | "unsupported-target-entity";
|
|
17
|
+
reason?: "no-permission" | "not-in-groups" | "invalid-object" | "too-many-groups" | "unsupported-target-entity";
|
|
18
18
|
}
|
|
19
19
|
export declare type AddContentWorkflowConfig = IAddContentCreateWorkflowConfig | IAddContentExistingWorkflowConfig | IAddContentUploadWorkflowConfig;
|
|
20
20
|
interface IAddContentWorkflowBaseConfig {
|
|
@@ -4,7 +4,7 @@ import { IPermissionPolicy } from "../../permissions";
|
|
|
4
4
|
* These define the requirements any user must meet to perform related actions
|
|
5
5
|
* @private
|
|
6
6
|
*/
|
|
7
|
-
export declare const UserPermissions: readonly ["hub:user", "hub:user:view", "hub:user:edit", "hub:user:owner", "hub:user:workspace", "hub:user:workspace:overview", "hub:user:workspace:settings", "hub:user:manage"];
|
|
7
|
+
export declare const UserPermissions: readonly ["hub:user", "hub:user:view", "hub:user:edit", "hub:user:owner", "hub:user:workspace", "hub:user:workspace:overview", "hub:user:workspace:settings", "hub:user:workspace:content", "hub:user:workspace:groups", "hub:user:workspace:shared-with-me", "hub:user:manage"];
|
|
8
8
|
/**
|
|
9
9
|
* User permission policies
|
|
10
10
|
* @private
|