@gooddata/sdk-ui-ext 11.64.0-alpha.1 → 11.64.0-alpha.2
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/NOTICE +4 -64198
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/AddWorkspace.d.ts.map +1 -1
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/AddWorkspace.js +6 -4
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/GranularPermissions.d.ts +2 -1
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/GranularPermissions.d.ts.map +1 -1
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/GranularPermissions.js +3 -3
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/granularPermissionUtils.d.ts +5 -5
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/granularPermissionUtils.d.ts.map +1 -1
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/granularPermissionUtils.js +13 -12
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/useAddWorkspace.d.ts +2 -1
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/useAddWorkspace.d.ts.map +1 -1
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/useAddWorkspace.js +5 -2
- package/esm/internal/components/dialogs/userManagementDialogs/dialogHooks.d.ts +1 -0
- package/esm/internal/components/dialogs/userManagementDialogs/dialogHooks.d.ts.map +1 -1
- package/esm/internal/components/dialogs/userManagementDialogs/dialogHooks.js +10 -0
- package/package.json +21 -21
package/esm/internal/components/dialogs/userManagementDialogs/Workspace/AddWorkspace.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddWorkspace.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/dialogs/userManagementDialogs/Workspace/AddWorkspace.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAUtF,MAAM,WAAW,kBAAkB;IAC/B,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,WAAW,EAAE,0BAA0B,CAAC;IACxC,iBAAiB,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAC;IACnD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;IACpD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,+CAA+C,CAAC,EAAE,OAAO,CAAC;IAC1D,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,kCAAkC,CAAC,EAAE,OAAO,CAAC;CAChD;AAED,wBAAgB,YAAY,CAAC,EACzB,GAAG,EACH,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,aAAa,EACb,2BAA2B,EAC3B,+CAA+C,EAC/C,4BAA4B,EAC5B,kCAAkC,GACrC,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"AddWorkspace.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/dialogs/userManagementDialogs/Workspace/AddWorkspace.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAUtF,MAAM,WAAW,kBAAkB;IAC/B,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,WAAW,EAAE,0BAA0B,CAAC;IACxC,iBAAiB,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAC;IACnD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;IACpD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,+CAA+C,CAAC,EAAE,OAAO,CAAC;IAC1D,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,kCAAkC,CAAC,EAAE,OAAO,CAAC;CAChD;AAED,wBAAgB,YAAY,CAAC,EACzB,GAAG,EACH,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,aAAa,EACb,2BAA2B,EAC3B,+CAA+C,EAC/C,4BAA4B,EAC5B,kCAAkC,GACrC,EAAE,kBAAkB,2CAyFpB"}
|
|
@@ -10,10 +10,12 @@ import { GranularPermissions } from "./WorkspaceItem/GranularPermissions.js";
|
|
|
10
10
|
import { areRedundantPermissionsPresent, haveWorkspacePermissionsChanged, } from "./WorkspaceItem/granularPermissionUtils.js";
|
|
11
11
|
export function AddWorkspace({ ids, subjectType, grantedWorkspaces, enableBackButton, onSubmit, onCancel, onClose, editWorkspace, areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled, areVisualizationPermissionsEnabled, }) {
|
|
12
12
|
const intl = useIntl();
|
|
13
|
-
const { addedWorkspaces, isProcessing, onAdd, onChange, onOverwriteSelect } = useAddWorkspace(ids, subjectType, onSubmit, onCancel, editWorkspace);
|
|
13
|
+
const { addedWorkspaces, isProcessing, onAdd, onChange, onOverwriteSelect, analyzeIncludesManageVisualizations, } = useAddWorkspace(ids, subjectType, onSubmit, onCancel, editWorkspace, areVisualizationPermissionsEnabled);
|
|
14
14
|
const isGranularPermissionsChanged = useMemo(() => {
|
|
15
|
-
return editWorkspace
|
|
16
|
-
|
|
15
|
+
return editWorkspace
|
|
16
|
+
? haveWorkspacePermissionsChanged(addedWorkspaces[0], editWorkspace, analyzeIncludesManageVisualizations)
|
|
17
|
+
: true;
|
|
18
|
+
}, [addedWorkspaces, editWorkspace, analyzeIncludesManageVisualizations]);
|
|
17
19
|
const showRedundancyWarningMessage = useMemo(() => {
|
|
18
20
|
return editWorkspace ? areRedundantPermissionsPresent(editWorkspace.permissions) : false;
|
|
19
21
|
}, [editWorkspace]);
|
|
@@ -25,5 +27,5 @@ export function AddWorkspace({ ids, subjectType, grantedWorkspaces, enableBackBu
|
|
|
25
27
|
id: "userManagement.workspace.granularPermission.help",
|
|
26
28
|
}), href: "https://www.gooddata.com/docs/cloud/manage-organization/manage-permissions/set-permissions-for-workspace/", iconClass: "gd-icon-circle-question" }) }));
|
|
27
29
|
}, [intl]);
|
|
28
|
-
return (_jsxs(ConfirmDialogBase, { className: "gd-share-dialog gd-share-dialog-add-workspace s-user-management-add-workspace", displayCloseButton: true, isPositive: true, isSubmitDisabled: addedWorkspaces.length === 0 || isProcessing || !isGranularPermissionsChanged, showProgressIndicator: isProcessing, headline: intl.formatMessage(editWorkspace ? messages.editWorkspaceDialogTitle : messages.addWorkspaceDialogTitle), cancelButtonText: intl.formatMessage(messages.addWorkspaceDialogCloseButton), submitButtonText: intl.formatMessage(messages.addWorkspaceDialogSaveButton), onCancel: onCancel, onSubmit: onAdd, onClose: onClose, headerLeftButtonRenderer: enableBackButton ? backButtonRenderer : undefined, footerLeftRenderer: leftFooterRenderer, children: [_jsx(AddSingleWorkspaceSelect, { addedWorkspace: addedWorkspaces[0], grantedWorkspaces: grantedWorkspaces, onSelectWorkspace: onOverwriteSelect, mode: editWorkspace ? "VIEW" : "EDIT" }), _jsx(GranularPermissions, { workspace: addedWorkspaces[0], savedPermissions: editWorkspace?.permissions, onChange: onChange, showRedundancyWarningMessage: showRedundancyWarningMessage, areMetricPermissionsEnabled: areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled: isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled: areComputedAttributesEnabled, areVisualizationPermissionsEnabled: areVisualizationPermissionsEnabled })] }));
|
|
30
|
+
return (_jsxs(ConfirmDialogBase, { className: "gd-share-dialog gd-share-dialog-add-workspace s-user-management-add-workspace", displayCloseButton: true, isPositive: true, isSubmitDisabled: addedWorkspaces.length === 0 || isProcessing || !isGranularPermissionsChanged, showProgressIndicator: isProcessing, headline: intl.formatMessage(editWorkspace ? messages.editWorkspaceDialogTitle : messages.addWorkspaceDialogTitle), cancelButtonText: intl.formatMessage(messages.addWorkspaceDialogCloseButton), submitButtonText: intl.formatMessage(messages.addWorkspaceDialogSaveButton), onCancel: onCancel, onSubmit: onAdd, onClose: onClose, headerLeftButtonRenderer: enableBackButton ? backButtonRenderer : undefined, footerLeftRenderer: leftFooterRenderer, children: [_jsx(AddSingleWorkspaceSelect, { addedWorkspace: addedWorkspaces[0], grantedWorkspaces: grantedWorkspaces, onSelectWorkspace: onOverwriteSelect, mode: editWorkspace ? "VIEW" : "EDIT" }), _jsx(GranularPermissions, { workspace: addedWorkspaces[0], savedPermissions: editWorkspace?.permissions, onChange: onChange, showRedundancyWarningMessage: showRedundancyWarningMessage, areMetricPermissionsEnabled: areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled: isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled: areComputedAttributesEnabled, areVisualizationPermissionsEnabled: areVisualizationPermissionsEnabled, analyzeIncludesManageVisualizations: analyzeIncludesManageVisualizations })] }));
|
|
29
31
|
}
|
|
@@ -8,7 +8,8 @@ interface IGranularPermissionsProps {
|
|
|
8
8
|
isCreateVisualizationWorkspacePermissionEnabled?: boolean;
|
|
9
9
|
areComputedAttributesEnabled?: boolean;
|
|
10
10
|
areVisualizationPermissionsEnabled?: boolean;
|
|
11
|
+
analyzeIncludesManageVisualizations?: boolean;
|
|
11
12
|
}
|
|
12
|
-
export declare function GranularPermissions({ workspace, savedPermissions, onChange, showRedundancyWarningMessage, areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled, areVisualizationPermissionsEnabled, }: IGranularPermissionsProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export declare function GranularPermissions({ workspace, savedPermissions, onChange, showRedundancyWarningMessage, areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled, areVisualizationPermissionsEnabled, analyzeIncludesManageVisualizations, }: IGranularPermissionsProps): import("react/jsx-runtime").JSX.Element;
|
|
13
14
|
export {};
|
|
14
15
|
//# sourceMappingURL=GranularPermissions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GranularPermissions.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/GranularPermissions.tsx"],"names":[],"mappings":"AAQA,OAAO,EACH,KAAK,iBAAiB,EAGtB,KAAK,oBAAoB,EAC5B,MAAM,gBAAgB,CAAC;AA2BxB,UAAU,yBAAyB;IAC/B,SAAS,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzC,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,QAAQ,EAAE,CAAC,SAAS,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACjD,4BAA4B,EAAE,OAAO,CAAC;IACtC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,+CAA+C,CAAC,EAAE,OAAO,CAAC;IAC1D,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,kCAAkC,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"GranularPermissions.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/GranularPermissions.tsx"],"names":[],"mappings":"AAQA,OAAO,EACH,KAAK,iBAAiB,EAGtB,KAAK,oBAAoB,EAC5B,MAAM,gBAAgB,CAAC;AA2BxB,UAAU,yBAAyB;IAC/B,SAAS,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzC,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,QAAQ,EAAE,CAAC,SAAS,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACjD,4BAA4B,EAAE,OAAO,CAAC;IACtC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,+CAA+C,CAAC,EAAE,OAAO,CAAC;IAC1D,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAC7C,mCAAmC,CAAC,EAAE,OAAO,CAAC;CACjD;AAED,wBAAgB,mBAAmB,CAAC,EAChC,SAAS,EACT,gBAAqB,EACrB,QAAQ,EACR,4BAA4B,EAC5B,2BAAmC,EACnC,+CAAuD,EACvD,4BAAoC,EACpC,kCAA0C,EAC1C,mCAA2C,GAC9C,EAAE,yBAAyB,2CAiJ3B"}
|
|
@@ -17,14 +17,14 @@ const granularPermissions = [
|
|
|
17
17
|
{ id: "MANAGE_VISUALIZATIONS", enabled: true },
|
|
18
18
|
{ id: "CREATE_FILTER_VIEW", enabled: true },
|
|
19
19
|
];
|
|
20
|
-
export function GranularPermissions({ workspace, savedPermissions = [], onChange, showRedundancyWarningMessage, areMetricPermissionsEnabled = false, isCreateVisualizationWorkspacePermissionEnabled = false, areComputedAttributesEnabled = false, areVisualizationPermissionsEnabled = false, }) {
|
|
20
|
+
export function GranularPermissions({ workspace, savedPermissions = [], onChange, showRedundancyWarningMessage, areMetricPermissionsEnabled = false, isCreateVisualizationWorkspacePermissionEnabled = false, areComputedAttributesEnabled = false, areVisualizationPermissionsEnabled = false, analyzeIncludesManageVisualizations = false, }) {
|
|
21
21
|
const intl = useIntl();
|
|
22
22
|
if (!workspace) {
|
|
23
23
|
return (_jsx("div", { className: "gd-granular-permissions-empty", children: _jsx(FormattedMessage, { id: "userManagement.workspace.granularPermission.noWorkspace" }) }));
|
|
24
24
|
}
|
|
25
25
|
const { permissions: selectedPermissions, isHierarchical } = workspace;
|
|
26
26
|
const selectedWorkspacePermission = getWorkspacePermission(selectedPermissions);
|
|
27
|
-
const selectedGranularPermissions = getGranularPermissions(selectedPermissions);
|
|
27
|
+
const selectedGranularPermissions = getGranularPermissions(selectedPermissions, analyzeIncludesManageVisualizations);
|
|
28
28
|
const chosenGranularPermissions = selectedPermissions.filter((p) => !workspacePermissions.includes(p));
|
|
29
29
|
const granularItems = granularPermissions.filter(({ id }) => (id !== "CREATE_METRIC" || areMetricPermissionsEnabled) &&
|
|
30
30
|
(id !== "CREATE_VISUALIZATION" || isCreateVisualizationWorkspacePermissionEnabled) &&
|
|
@@ -60,7 +60,7 @@ export function GranularPermissions({ workspace, savedPermissions = [], onChange
|
|
|
60
60
|
}) }), _jsx("div", { className: "gd-granular-permissions__workspace-access-description", children: _jsx(FormattedMessage, { id: getWorkspaceAccessPermissionDescription(selectedWorkspacePermission).id }) }), _jsx(DialogListHeader, { title: intl.formatMessage({
|
|
61
61
|
id: "userManagement.workspace.granularPermission.additionalAccess.title",
|
|
62
62
|
}) }), _jsx("div", { className: "gd-granular-permissions__additional-access-wrapper", children: granularItems.map((granularPermission) => {
|
|
63
|
-
return (_jsx(AdditionalAccessPermissionItem, { item: granularPermission, checked: selectedGranularPermissions.includes(granularPermission.id), indefinite: isExportPermissionIndefinite(granularPermission.id, selectedGranularPermissions), disabled: isPermissionDisabled(granularPermission.id, selectedWorkspacePermission, selectedGranularPermissions), onChange: () => handleGranularPermissionChange(granularPermission.id) }, granularPermission.id));
|
|
63
|
+
return (_jsx(AdditionalAccessPermissionItem, { item: granularPermission, checked: selectedGranularPermissions.includes(granularPermission.id), indefinite: isExportPermissionIndefinite(granularPermission.id, selectedGranularPermissions), disabled: isPermissionDisabled(granularPermission.id, selectedWorkspacePermission, selectedGranularPermissions, analyzeIncludesManageVisualizations), onChange: () => handleGranularPermissionChange(granularPermission.id) }, granularPermission.id));
|
|
64
64
|
}) }), showRedundancyWarningMessage ? (_jsx(Message, { type: "warning", className: "gd-granular-permissions__warning", children: _jsx(FormattedMessage, { id: "userManagement.workspace.granularPermission.warning", values: {
|
|
65
65
|
b: (chunks) => _jsx("strong", { children: chunks }),
|
|
66
66
|
} }) })) : null] }));
|
|
@@ -8,7 +8,7 @@ export declare const exportPermissions: WorkspacePermissions;
|
|
|
8
8
|
*
|
|
9
9
|
* Returns the list of these granular permissions.
|
|
10
10
|
*/
|
|
11
|
-
export declare const getImplicitGranularPermissions: (workspacePermission: WorkspacePermission) => WorkspacePermissions;
|
|
11
|
+
export declare const getImplicitGranularPermissions: (workspacePermission: WorkspacePermission, analyzeIncludesManageVisualizations?: boolean) => WorkspacePermissions;
|
|
12
12
|
/**
|
|
13
13
|
* Returns hierarchically strongest permission from the list.
|
|
14
14
|
*/
|
|
@@ -16,7 +16,7 @@ export declare const getWorkspacePermission: (permissions: WorkspacePermissions)
|
|
|
16
16
|
/**
|
|
17
17
|
* Returns all granular permissions from a list, inluding implicit ones.
|
|
18
18
|
*/
|
|
19
|
-
export declare const getGranularPermissions: (permissions: WorkspacePermissions) => WorkspacePermissions;
|
|
19
|
+
export declare const getGranularPermissions: (permissions: WorkspacePermissions, analyzeIncludesManageVisualizations?: boolean) => WorkspacePermissions;
|
|
20
20
|
/**
|
|
21
21
|
* Export permission is a granular permission that has subpermissions,
|
|
22
22
|
* so sanitization on UI is needed when selecting and deselecting occurs.
|
|
@@ -36,19 +36,19 @@ export declare const isExportPermissionIndefinite: (permission: WorkspacePermiss
|
|
|
36
36
|
*
|
|
37
37
|
* Returns whether a permission is disabled.
|
|
38
38
|
*/
|
|
39
|
-
export declare const isPermissionDisabled: (permission: WorkspacePermission, selectedWorkspacePermission: WorkspacePermission, selectedGranularPermissions: WorkspacePermissions) => boolean;
|
|
39
|
+
export declare const isPermissionDisabled: (permission: WorkspacePermission, selectedWorkspacePermission: WorkspacePermission, selectedGranularPermissions: WorkspacePermissions, analyzeIncludesManageVisualizations?: boolean) => boolean;
|
|
40
40
|
/**
|
|
41
41
|
* Before persisting permissions, we want to remove implicit permissions as they are not needed on BE.
|
|
42
42
|
*
|
|
43
43
|
* Returns the list of permissions without implicit ones.
|
|
44
44
|
*/
|
|
45
|
-
export declare const removeRedundantPermissions: (permissions: WorkspacePermissions) => WorkspacePermissions;
|
|
45
|
+
export declare const removeRedundantPermissions: (permissions: WorkspacePermissions, analyzeIncludesManageVisualizations?: boolean) => WorkspacePermissions;
|
|
46
46
|
/**
|
|
47
47
|
* Returns whether two workspaces differ in hierarchy or permissions.
|
|
48
48
|
*
|
|
49
49
|
* Remark: compares what a save would store, so implicit permissions do not count.
|
|
50
50
|
*/
|
|
51
|
-
export declare const haveWorkspacePermissionsChanged: (workspace1: IGrantedWorkspace, workspace2: IGrantedWorkspace) => boolean;
|
|
51
|
+
export declare const haveWorkspacePermissionsChanged: (workspace1: IGrantedWorkspace, workspace2: IGrantedWorkspace, analyzeIncludesManageVisualizations?: boolean) => boolean;
|
|
52
52
|
/**
|
|
53
53
|
* Returns human-readable title of effective permissions for UI description.
|
|
54
54
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"granularPermissionUtils.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/granularPermissionUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAI7G,eAAO,MAAM,oBAAoB,EAAE,oBAAoD,CAAC;AAExF,eAAO,MAAM,iBAAiB,EAAE,oBAA0D,CAAC;AAW3F;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,wBAClB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"granularPermissionUtils.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/granularPermissionUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAI7G,eAAO,MAAM,oBAAoB,EAAE,oBAAoD,CAAC;AAExF,eAAO,MAAM,iBAAiB,EAAE,oBAA0D,CAAC;AAW3F;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,wBAClB,mBAAmB,oDAEzC,oBAuBF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,gBAAiB,oBAAoB,KAAG,mBAQ1E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,gBAClB,oBAAoB,oDAElC,oBAeF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,sBACf,mBAAmB,eACzB,oBAAoB,WACxB,OAAO,KACjB,oBA2BF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,eACzB,mBAAmB,+BACF,oBAAoB,YAOpD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,eACjB,mBAAmB,+BACF,mBAAmB,+BACnB,oBAAoB,2DAUpD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,gBACtB,oBAAoB,oDAElC,oBAmBF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,eAC5B,iBAAiB,cACjB,iBAAiB,2DAchC,CAAC;AAsCF;;GAEG;AACH,eAAO,MAAM,gCAAgC,gBAC5B,oBAAoB,QAC3B,SAAS,KAChB,MAmBF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,gBAAiB,oBAAoB,KAAG,OAGlF,CAAC"}
|
|
@@ -16,12 +16,14 @@ const includedBy = (permissions) => permissions.flatMap((p) => includedPermissio
|
|
|
16
16
|
*
|
|
17
17
|
* Returns the list of these granular permissions.
|
|
18
18
|
*/
|
|
19
|
-
export const getImplicitGranularPermissions = (workspacePermission) => {
|
|
19
|
+
export const getImplicitGranularPermissions = (workspacePermission, analyzeIncludesManageVisualizations = false) => {
|
|
20
20
|
switch (workspacePermission) {
|
|
21
21
|
case "VIEW":
|
|
22
22
|
return [];
|
|
23
23
|
case "ANALYZE":
|
|
24
|
-
return
|
|
24
|
+
return analyzeIncludesManageVisualizations
|
|
25
|
+
? ["CREATE_VISUALIZATION", "CREATE_FILTER_VIEW", "MANAGE_VISUALIZATIONS"]
|
|
26
|
+
: ["CREATE_VISUALIZATION", "CREATE_FILTER_VIEW"];
|
|
25
27
|
case "MANAGE":
|
|
26
28
|
return [
|
|
27
29
|
"EXPORT",
|
|
@@ -55,9 +57,9 @@ export const getWorkspacePermission = (permissions) => {
|
|
|
55
57
|
/**
|
|
56
58
|
* Returns all granular permissions from a list, inluding implicit ones.
|
|
57
59
|
*/
|
|
58
|
-
export const getGranularPermissions = (permissions) => {
|
|
60
|
+
export const getGranularPermissions = (permissions, analyzeIncludesManageVisualizations = false) => {
|
|
59
61
|
const workspacePermission = getWorkspacePermission(permissions);
|
|
60
|
-
const implicitGranularPermissions = getImplicitGranularPermissions(workspacePermission);
|
|
62
|
+
const implicitGranularPermissions = getImplicitGranularPermissions(workspacePermission, analyzeIncludesManageVisualizations);
|
|
61
63
|
const onlyGranularPermissions = permissions.filter((p) => !workspacePermissions.includes(p));
|
|
62
64
|
return [
|
|
63
65
|
...new Set([
|
|
@@ -113,10 +115,10 @@ export const isExportPermissionIndefinite = (permission, selectedGranularPermiss
|
|
|
113
115
|
*
|
|
114
116
|
* Returns whether a permission is disabled.
|
|
115
117
|
*/
|
|
116
|
-
export const isPermissionDisabled = (permission, selectedWorkspacePermission, selectedGranularPermissions) => {
|
|
118
|
+
export const isPermissionDisabled = (permission, selectedWorkspacePermission, selectedGranularPermissions, analyzeIncludesManageVisualizations = false) => {
|
|
117
119
|
const isManageWithNoAi = selectedWorkspacePermission === "MANAGE" && permission !== "USE_AI_ASSISTANT";
|
|
118
120
|
const isAnalyzeWithImpliedPermission = selectedWorkspacePermission === "ANALYZE" &&
|
|
119
|
-
(
|
|
121
|
+
getImplicitGranularPermissions("ANALYZE", analyzeIncludesManageVisualizations).includes(permission);
|
|
120
122
|
const isIncluded = includedBy(selectedGranularPermissions).includes(permission);
|
|
121
123
|
return isManageWithNoAi || isAnalyzeWithImpliedPermission || isIncluded;
|
|
122
124
|
};
|
|
@@ -125,7 +127,7 @@ export const isPermissionDisabled = (permission, selectedWorkspacePermission, se
|
|
|
125
127
|
*
|
|
126
128
|
* Returns the list of permissions without implicit ones.
|
|
127
129
|
*/
|
|
128
|
-
export const removeRedundantPermissions = (permissions) => {
|
|
130
|
+
export const removeRedundantPermissions = (permissions, analyzeIncludesManageVisualizations = false) => {
|
|
129
131
|
let sanitizedPermissions;
|
|
130
132
|
if (permissions.includes("MANAGE")) {
|
|
131
133
|
sanitizedPermissions = ["MANAGE"];
|
|
@@ -136,9 +138,8 @@ export const removeRedundantPermissions = (permissions) => {
|
|
|
136
138
|
}
|
|
137
139
|
sanitizedPermissions = [...permissions];
|
|
138
140
|
if (permissions.includes("ANALYZE")) {
|
|
139
|
-
|
|
140
|
-
sanitizedPermissions = sanitizedPermissions.filter((p) => p !== "
|
|
141
|
-
sanitizedPermissions = sanitizedPermissions.filter((p) => p !== "CREATE_VISUALIZATION");
|
|
141
|
+
const implicit = getImplicitGranularPermissions("ANALYZE", analyzeIncludesManageVisualizations);
|
|
142
|
+
sanitizedPermissions = sanitizedPermissions.filter((p) => p !== "VIEW" && !implicit.includes(p));
|
|
142
143
|
}
|
|
143
144
|
const included = includedBy(permissions);
|
|
144
145
|
return sanitizedPermissions.filter((p) => !included.includes(p));
|
|
@@ -148,12 +149,12 @@ export const removeRedundantPermissions = (permissions) => {
|
|
|
148
149
|
*
|
|
149
150
|
* Remark: compares what a save would store, so implicit permissions do not count.
|
|
150
151
|
*/
|
|
151
|
-
export const haveWorkspacePermissionsChanged = (workspace1, workspace2) => {
|
|
152
|
+
export const haveWorkspacePermissionsChanged = (workspace1, workspace2, analyzeIncludesManageVisualizations = false) => {
|
|
152
153
|
if (workspace1 === undefined || workspace2 === undefined) {
|
|
153
154
|
return false;
|
|
154
155
|
}
|
|
155
156
|
return (workspace1.isHierarchical !== workspace2.isHierarchical ||
|
|
156
|
-
!isEqual(removeRedundantPermissions(workspace1.permissions).sort(), removeRedundantPermissions(workspace2.permissions).sort()));
|
|
157
|
+
!isEqual(removeRedundantPermissions(workspace1.permissions, analyzeIncludesManageVisualizations).sort(), removeRedundantPermissions(workspace2.permissions, analyzeIncludesManageVisualizations).sort()));
|
|
157
158
|
};
|
|
158
159
|
/**
|
|
159
160
|
* Returns reordered permissions with MANAGE, ANALYZE, or VIEW at the first position in this order.
|
package/esm/internal/components/dialogs/userManagementDialogs/Workspace/useAddWorkspace.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type IWorkspaceDescriptor } from "@gooddata/sdk-backend-spi";
|
|
2
2
|
import { type IGrantedWorkspace, type WorkspacePermissionSubject } from "../types.js";
|
|
3
|
-
export declare const useAddWorkspace: (ids: string[], subjectType: WorkspacePermissionSubject, onSubmit: (workspaces: IGrantedWorkspace[]) => void, onCancel: () => void, editWorkspace?: IGrantedWorkspace) => {
|
|
3
|
+
export declare const useAddWorkspace: (ids: string[], subjectType: WorkspacePermissionSubject, onSubmit: (workspaces: IGrantedWorkspace[]) => void, onCancel: () => void, editWorkspace?: IGrantedWorkspace, areVisualizationPermissionsEnabled?: boolean) => {
|
|
4
4
|
addedWorkspaces: IGrantedWorkspace[];
|
|
5
5
|
onDelete: (workspace: IGrantedWorkspace) => void;
|
|
6
6
|
onChange: (workspace: IGrantedWorkspace) => void;
|
|
@@ -8,5 +8,6 @@ export declare const useAddWorkspace: (ids: string[], subjectType: WorkspacePerm
|
|
|
8
8
|
onOverwriteSelect: ({ id, title }: IWorkspaceDescriptor) => void;
|
|
9
9
|
onAdd: () => void;
|
|
10
10
|
isProcessing: boolean;
|
|
11
|
+
analyzeIncludesManageVisualizations: boolean;
|
|
11
12
|
};
|
|
12
13
|
//# sourceMappingURL=useAddWorkspace.d.ts.map
|
package/esm/internal/components/dialogs/userManagementDialogs/Workspace/useAddWorkspace.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAddWorkspace.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/dialogs/userManagementDialogs/Workspace/useAddWorkspace.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"useAddWorkspace.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/dialogs/userManagementDialogs/Workspace/useAddWorkspace.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAQtE,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAKtF,eAAO,MAAM,eAAe,QACnB,MAAM,EAAE,eACA,0BAA0B,YAC7B,CAAC,UAAU,EAAE,iBAAiB,EAAE,KAAK,IAAI,YACzC,MAAM,IAAI,kBACJ,iBAAiB;;0BAiBJ,iBAAiB;0BAIjB,iBAAiB;8BA4Db,oBAAoB;uCAIX,oBAAoB;;;;CAcjE,CAAC"}
|
|
@@ -2,18 +2,20 @@
|
|
|
2
2
|
import { useState } from "react";
|
|
3
3
|
import { useBackendStrict } from "@gooddata/sdk-ui";
|
|
4
4
|
import { useToastMessage } from "@gooddata/sdk-ui-kit";
|
|
5
|
+
import { useAnalyzeIncludesManageVisualizations } from "../dialogHooks.js";
|
|
5
6
|
import { messages } from "../locales.js";
|
|
6
7
|
import { useOrganizationId } from "../OrganizationIdContext.js";
|
|
7
8
|
import { useTelemetry } from "../TelemetryContext.js";
|
|
8
9
|
import { grantedWorkspaceAsPermissionAssignment, sortByName } from "../utils.js";
|
|
9
10
|
import { removeRedundantPermissions } from "./WorkspaceItem/granularPermissionUtils.js";
|
|
10
|
-
export const useAddWorkspace = (ids, subjectType, onSubmit, onCancel, editWorkspace) => {
|
|
11
|
+
export const useAddWorkspace = (ids, subjectType, onSubmit, onCancel, editWorkspace, areVisualizationPermissionsEnabled = false) => {
|
|
11
12
|
const { addSuccess, addError } = useToastMessage();
|
|
12
13
|
const backend = useBackendStrict();
|
|
13
14
|
const organizationId = useOrganizationId();
|
|
14
15
|
const [addedWorkspaces, setAddedWorkspaces] = useState(editWorkspace ? [editWorkspace] : []);
|
|
15
16
|
const [isProcessing, setIsProcessing] = useState(false);
|
|
16
17
|
const trackEvent = useTelemetry();
|
|
18
|
+
const analyzeIncludesManageVisualizations = useAnalyzeIncludesManageVisualizations(addedWorkspaces[0]?.id, areVisualizationPermissionsEnabled);
|
|
17
19
|
const onDelete = (workspace) => {
|
|
18
20
|
setAddedWorkspaces(addedWorkspaces.filter((item) => item.id !== workspace.id));
|
|
19
21
|
};
|
|
@@ -27,7 +29,7 @@ export const useAddWorkspace = (ids, subjectType, onSubmit, onCancel, editWorksp
|
|
|
27
29
|
// revokes also use and which must name the stored redundant levels.
|
|
28
30
|
const savedWorkspaces = addedWorkspaces.map((w) => ({
|
|
29
31
|
...w,
|
|
30
|
-
permissions: removeRedundantPermissions(w.permissions),
|
|
32
|
+
permissions: removeRedundantPermissions(w.permissions, analyzeIncludesManageVisualizations),
|
|
31
33
|
}));
|
|
32
34
|
backend
|
|
33
35
|
.organization(organizationId)
|
|
@@ -81,6 +83,7 @@ export const useAddWorkspace = (ids, subjectType, onSubmit, onCancel, editWorksp
|
|
|
81
83
|
onOverwriteSelect,
|
|
82
84
|
onAdd,
|
|
83
85
|
isProcessing,
|
|
86
|
+
analyzeIncludesManageVisualizations,
|
|
84
87
|
};
|
|
85
88
|
};
|
|
86
89
|
const getInitialWorkspaceTemplate = (id, title) => ({
|
|
@@ -20,6 +20,7 @@ export declare const useLanguageStatistics: (organizationId: string, isEnabled:
|
|
|
20
20
|
statistics: import("@gooddata/sdk-backend-spi").ILocalizationStatistics | undefined;
|
|
21
21
|
isLoading: boolean;
|
|
22
22
|
};
|
|
23
|
+
export declare const useAnalyzeIncludesManageVisualizations: (workspaceId: string | undefined, isEnabled: boolean) => boolean;
|
|
23
24
|
export declare const useUserGroup: (userGroupId: string, organizationId: string, onSuccess: () => void) => {
|
|
24
25
|
userGroup: IUserGroup | undefined;
|
|
25
26
|
onUserGroupDetailsChanged: (userGroup: IUserGroup) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialogHooks.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/dialogs/userManagementDialogs/dialogHooks.ts"],"names":[],"mappings":"AAOA,OAAO,EAEH,KAAK,KAAK,EACV,KAAK,UAAU,EAGlB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,IAAI,EAAmB,MAAM,sBAAsB,CAAC;AAIlE,OAAO,EACH,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,SAAS,EACjB,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,OAAO,WAAY,MAAM,kBAAkB,MAAM,WAAW,OAAO,aAAa,MAAM,IAAI;;iCAc/D,KAAK,WAAW,OAAO;;;;;CAc9D,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAAY,MAAM,kBAAkB,MAAM,aAAa,OAAO;;;;;;CA8B1F,CAAC;AAEF,eAAO,MAAM,qBAAqB,mBAAoB,MAAM,aAAa,OAAO;IAaxE,UAAU;IACV,SAAS;CAEhB,CAAC;AAEF,eAAO,MAAM,YAAY,gBAAiB,MAAM,kBAAkB,MAAM,aAAa,MAAM,IAAI;;2CAY7C,UAAU;;;CAW3D,CAAC;AAEF,eAAO,MAAM,aAAa,WACd,MAAM,kBACE,MAAM,aACX,MAAM,IAAI,WACZ,MAAM,IAAI;;;CA8BtB,CAAC;AAEF,eAAO,MAAM,kBAAkB,gBACd,MAAM,kBACH,MAAM,aACX,MAAM,IAAI,WACZ,MAAM,IAAI;;;CA8BtB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;CAiB3B,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAGvC,mBAAmB,EAAE,MAAM,IAAI,CAAC;CACnC;AAED,eAAO,MAAM,aAAa,kGAOvB,oBAAoB;;sCA0DsB,iBAAiB,EAAE;+CArCV,iBAAiB;;CAwDtE,CAAC;AAEF,eAAO,MAAM,QAAQ,gBAAiB,MAAM,kBAAkB,MAAM,aAAa,MAAM,IAAI;;4BAuCxD,WAAW,EAAE;sCAjBH,WAAW;CA4BvD,CAAC;AAeF,eAAO,MAAM,iBAAiB,sBACP,iBAAiB,EAAE,GAAG,SAAS,qBAC/B,iBAAiB,EAAE,GAAG,SAAS,sBAC9B,kBAAkB,EAAE,GAAG,SAAS,WAC3C,OAAO,gBACF,SAAS;;;;;;;;CAmC1B,CAAC;AAEF,eAAO,MAAM,sBAAsB,sBACZ,iBAAiB,EAAE,GAAG,SAAS,gBACpC,WAAW,EAAE,sBACP,kBAAkB,EAAE,GAAG,SAAS,WAC3C,OAAO;;;;;;;;CA+BnB,CAAC;AAEF,eAAO,MAAM,iBAAiB,gBAAiB,kBAAkB;;;CAMhE,CAAC;AAEF,eAAO,MAAM,sBAAsB,gBAAiB,uBAAuB;;;CAM1E,CAAC;AAsBF,eAAO,MAAM,sBAAsB,mBAAoB,MAAM;IAGrD,eAAe,SAAS,KAAK,GAAG,SAAS;IACzC,oBAAoB,cAAc,UAAU,GAAG,SAAS;IAExD,eAAe;IACf,oBAAoB;CAE3B,CAAC"}
|
|
1
|
+
{"version":3,"file":"dialogHooks.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/dialogs/userManagementDialogs/dialogHooks.ts"],"names":[],"mappings":"AAOA,OAAO,EAEH,KAAK,KAAK,EACV,KAAK,UAAU,EAGlB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,IAAI,EAAmB,MAAM,sBAAsB,CAAC;AAIlE,OAAO,EACH,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,SAAS,EACjB,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,OAAO,WAAY,MAAM,kBAAkB,MAAM,WAAW,OAAO,aAAa,MAAM,IAAI;;iCAc/D,KAAK,WAAW,OAAO;;;;;CAc9D,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAAY,MAAM,kBAAkB,MAAM,aAAa,OAAO;;;;;;CA8B1F,CAAC;AAEF,eAAO,MAAM,qBAAqB,mBAAoB,MAAM,aAAa,OAAO;IAaxE,UAAU;IACV,SAAS;CAEhB,CAAC;AAEF,eAAO,MAAM,sCAAsC,gBAClC,MAAM,GAAG,SAAS,aACpB,OAAO,YAgBrB,CAAC;AAEF,eAAO,MAAM,YAAY,gBAAiB,MAAM,kBAAkB,MAAM,aAAa,MAAM,IAAI;;2CAY7C,UAAU;;;CAW3D,CAAC;AAEF,eAAO,MAAM,aAAa,WACd,MAAM,kBACE,MAAM,aACX,MAAM,IAAI,WACZ,MAAM,IAAI;;;CA8BtB,CAAC;AAEF,eAAO,MAAM,kBAAkB,gBACd,MAAM,kBACH,MAAM,aACX,MAAM,IAAI,WACZ,MAAM,IAAI;;;CA8BtB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;CAiB3B,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAGvC,mBAAmB,EAAE,MAAM,IAAI,CAAC;CACnC;AAED,eAAO,MAAM,aAAa,kGAOvB,oBAAoB;;sCA0DsB,iBAAiB,EAAE;+CArCV,iBAAiB;;CAwDtE,CAAC;AAEF,eAAO,MAAM,QAAQ,gBAAiB,MAAM,kBAAkB,MAAM,aAAa,MAAM,IAAI;;4BAuCxD,WAAW,EAAE;sCAjBH,WAAW;CA4BvD,CAAC;AAeF,eAAO,MAAM,iBAAiB,sBACP,iBAAiB,EAAE,GAAG,SAAS,qBAC/B,iBAAiB,EAAE,GAAG,SAAS,sBAC9B,kBAAkB,EAAE,GAAG,SAAS,WAC3C,OAAO,gBACF,SAAS;;;;;;;;CAmC1B,CAAC;AAEF,eAAO,MAAM,sBAAsB,sBACZ,iBAAiB,EAAE,GAAG,SAAS,gBACpC,WAAW,EAAE,sBACP,kBAAkB,EAAE,GAAG,SAAS,WAC3C,OAAO;;;;;;;;CA+BnB,CAAC;AAEF,eAAO,MAAM,iBAAiB,gBAAiB,kBAAkB;;;CAMhE,CAAC;AAEF,eAAO,MAAM,sBAAsB,gBAAiB,uBAAuB;;;CAM1E,CAAC;AAsBF,eAAO,MAAM,sBAAsB,mBAAoB,MAAM;IAGrD,eAAe,SAAS,KAAK,GAAG,SAAS;IACzC,oBAAoB,cAAc,UAAU,GAAG,SAAS;IAExD,eAAe;IACf,oBAAoB;CAE3B,CAAC"}
|
|
@@ -66,6 +66,16 @@ export const useLanguageStatistics = (organizationId, isEnabled) => {
|
|
|
66
66
|
isLoading: status === "loading",
|
|
67
67
|
};
|
|
68
68
|
};
|
|
69
|
+
export const useAnalyzeIncludesManageVisualizations = (workspaceId, isEnabled) => {
|
|
70
|
+
const backend = useBackendStrict();
|
|
71
|
+
const { result } = useCancelablePromise({
|
|
72
|
+
promise: isEnabled && workspaceId
|
|
73
|
+
? () => backend.workspace(workspaceId).settings().getSettings()
|
|
74
|
+
: null,
|
|
75
|
+
onError: (error) => console.error("Loading of workspace settings failed", error),
|
|
76
|
+
}, [backend, workspaceId, isEnabled]);
|
|
77
|
+
return result?.grantManageVisualizationsWithAnalyze ?? false;
|
|
78
|
+
};
|
|
69
79
|
export const useUserGroup = (userGroupId, organizationId, onSuccess) => {
|
|
70
80
|
const [userGroup, setUserGroup] = useState();
|
|
71
81
|
const backend = useBackendStrict();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-ui-ext",
|
|
3
|
-
"version": "11.64.0-alpha.
|
|
3
|
+
"version": "11.64.0-alpha.2",
|
|
4
4
|
"description": "GoodData.UI SDK - Extensions",
|
|
5
5
|
"license": "LicenseRef-LICENSE",
|
|
6
6
|
"author": "GoodData Corporation",
|
|
@@ -63,20 +63,20 @@
|
|
|
63
63
|
"ts-invariant": "0.10.3",
|
|
64
64
|
"tslib": "2.8.1",
|
|
65
65
|
"uuid": "11.1.1",
|
|
66
|
-
"@gooddata/sdk-backend-base": "11.64.0-alpha.
|
|
67
|
-
"@gooddata/sdk-backend-spi": "11.64.0-alpha.
|
|
68
|
-
"@gooddata/sdk-
|
|
69
|
-
"@gooddata/sdk-
|
|
70
|
-
"@gooddata/sdk-
|
|
71
|
-
"@gooddata/sdk-
|
|
72
|
-
"@gooddata/sdk-ui-filters": "11.64.0-alpha.
|
|
73
|
-
"@gooddata/sdk-ui-geo": "11.64.0-alpha.
|
|
74
|
-
"@gooddata/sdk-ui-
|
|
75
|
-
"@gooddata/sdk-ui-
|
|
76
|
-
"@gooddata/sdk-ui-semantic-search": "11.64.0-alpha.
|
|
77
|
-
"@gooddata/sdk-ui-theme-provider": "11.64.0-alpha.
|
|
78
|
-
"@gooddata/sdk-ui-vis-commons": "11.64.0-alpha.
|
|
79
|
-
"@gooddata/util": "11.64.0-alpha.
|
|
66
|
+
"@gooddata/sdk-backend-base": "11.64.0-alpha.2",
|
|
67
|
+
"@gooddata/sdk-backend-spi": "11.64.0-alpha.2",
|
|
68
|
+
"@gooddata/sdk-model": "11.64.0-alpha.2",
|
|
69
|
+
"@gooddata/sdk-ui": "11.64.0-alpha.2",
|
|
70
|
+
"@gooddata/sdk-ui-charts": "11.64.0-alpha.2",
|
|
71
|
+
"@gooddata/sdk-embedding": "11.64.0-alpha.2",
|
|
72
|
+
"@gooddata/sdk-ui-filters": "11.64.0-alpha.2",
|
|
73
|
+
"@gooddata/sdk-ui-geo": "11.64.0-alpha.2",
|
|
74
|
+
"@gooddata/sdk-ui-pivot": "11.64.0-alpha.2",
|
|
75
|
+
"@gooddata/sdk-ui-kit": "11.64.0-alpha.2",
|
|
76
|
+
"@gooddata/sdk-ui-semantic-search": "11.64.0-alpha.2",
|
|
77
|
+
"@gooddata/sdk-ui-theme-provider": "11.64.0-alpha.2",
|
|
78
|
+
"@gooddata/sdk-ui-vis-commons": "11.64.0-alpha.2",
|
|
79
|
+
"@gooddata/util": "11.64.0-alpha.2"
|
|
80
80
|
},
|
|
81
81
|
"devDependencies": {
|
|
82
82
|
"@microsoft/api-documenter": "7.30.16",
|
|
@@ -120,12 +120,12 @@
|
|
|
120
120
|
"svgo": "2.8.4",
|
|
121
121
|
"typescript": "7.0.2",
|
|
122
122
|
"vitest": "5.0.4",
|
|
123
|
-
"@gooddata/eslint-config": "11.64.0-alpha.
|
|
124
|
-
"@gooddata/i18n-toolkit": "11.64.0-alpha.
|
|
125
|
-
"@gooddata/oxlint-config": "11.64.0-alpha.
|
|
126
|
-
"@gooddata/
|
|
127
|
-
"@gooddata/
|
|
128
|
-
"@gooddata/stylelint-config": "11.64.0-alpha.
|
|
123
|
+
"@gooddata/eslint-config": "11.64.0-alpha.2",
|
|
124
|
+
"@gooddata/i18n-toolkit": "11.64.0-alpha.2",
|
|
125
|
+
"@gooddata/oxlint-config": "11.64.0-alpha.2",
|
|
126
|
+
"@gooddata/sdk-backend-mockingbird": "11.64.0-alpha.2",
|
|
127
|
+
"@gooddata/reference-workspace": "11.64.0-alpha.2",
|
|
128
|
+
"@gooddata/stylelint-config": "11.64.0-alpha.2"
|
|
129
129
|
},
|
|
130
130
|
"peerDependencies": {
|
|
131
131
|
"react": "^18.0.0 || ^19.0.0",
|