@gooddata/sdk-ui-ext 11.61.0-alpha.3 → 11.61.0-alpha.5

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.
Files changed (119) hide show
  1. package/NOTICE +409 -550
  2. package/esm/internal/components/dialogs/userManagementDialogs/AddWorkspaceToSubjects.d.ts +1 -0
  3. package/esm/internal/components/dialogs/userManagementDialogs/AddWorkspaceToSubjects.d.ts.map +1 -1
  4. package/esm/internal/components/dialogs/userManagementDialogs/AddWorkspaceToSubjects.js +2 -2
  5. package/esm/internal/components/dialogs/userManagementDialogs/UserEditDialog.d.ts +1 -0
  6. package/esm/internal/components/dialogs/userManagementDialogs/UserEditDialog.d.ts.map +1 -1
  7. package/esm/internal/components/dialogs/userManagementDialogs/UserEditDialog.js +2 -2
  8. package/esm/internal/components/dialogs/userManagementDialogs/UserGroupEditDialog.d.ts +1 -0
  9. package/esm/internal/components/dialogs/userManagementDialogs/UserGroupEditDialog.d.ts.map +1 -1
  10. package/esm/internal/components/dialogs/userManagementDialogs/UserGroupEditDialog.js +2 -2
  11. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/AddWorkspace.d.ts +2 -1
  12. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/AddWorkspace.d.ts.map +1 -1
  13. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/AddWorkspace.js +4 -4
  14. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/GranularPermissions.d.ts +2 -1
  15. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/GranularPermissions.d.ts.map +1 -1
  16. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/GranularPermissions.js +24 -24
  17. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/granularPermissionUtils.d.ts +3 -3
  18. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/granularPermissionUtils.d.ts.map +1 -1
  19. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/granularPermissionUtils.js +21 -15
  20. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/locales.d.ts +6 -0
  21. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/locales.d.ts.map +1 -1
  22. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/locales.js +4 -0
  23. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/useAddWorkspace.d.ts.map +1 -1
  24. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/useAddWorkspace.js +10 -3
  25. package/esm/internal/components/pluggableVisualizations/chartCodeGenUtils.d.ts.map +1 -1
  26. package/esm/internal/components/pluggableVisualizations/chartCodeGenUtils.js +1 -0
  27. package/esm/internal/translations/de-DE.localization-bundle.d.ts +6 -1
  28. package/esm/internal/translations/de-DE.localization-bundle.d.ts.map +1 -1
  29. package/esm/internal/translations/de-DE.localization-bundle.js +6 -1
  30. package/esm/internal/translations/en-AU.localization-bundle.d.ts +6 -1
  31. package/esm/internal/translations/en-AU.localization-bundle.d.ts.map +1 -1
  32. package/esm/internal/translations/en-AU.localization-bundle.js +6 -1
  33. package/esm/internal/translations/en-GB.localization-bundle.d.ts +6 -1
  34. package/esm/internal/translations/en-GB.localization-bundle.d.ts.map +1 -1
  35. package/esm/internal/translations/en-GB.localization-bundle.js +6 -1
  36. package/esm/internal/translations/en-US.localization-bundle.d.ts +8 -0
  37. package/esm/internal/translations/en-US.localization-bundle.d.ts.map +1 -1
  38. package/esm/internal/translations/en-US.localization-bundle.js +9 -1
  39. package/esm/internal/translations/es-419.localization-bundle.d.ts +6 -1
  40. package/esm/internal/translations/es-419.localization-bundle.d.ts.map +1 -1
  41. package/esm/internal/translations/es-419.localization-bundle.js +6 -1
  42. package/esm/internal/translations/es-ES.localization-bundle.d.ts +6 -1
  43. package/esm/internal/translations/es-ES.localization-bundle.d.ts.map +1 -1
  44. package/esm/internal/translations/es-ES.localization-bundle.js +6 -1
  45. package/esm/internal/translations/fi-FI.localization-bundle.d.ts +6 -1
  46. package/esm/internal/translations/fi-FI.localization-bundle.d.ts.map +1 -1
  47. package/esm/internal/translations/fi-FI.localization-bundle.js +6 -1
  48. package/esm/internal/translations/fr-CA.localization-bundle.d.ts +6 -1
  49. package/esm/internal/translations/fr-CA.localization-bundle.d.ts.map +1 -1
  50. package/esm/internal/translations/fr-CA.localization-bundle.js +6 -1
  51. package/esm/internal/translations/fr-FR.localization-bundle.d.ts +6 -1
  52. package/esm/internal/translations/fr-FR.localization-bundle.d.ts.map +1 -1
  53. package/esm/internal/translations/fr-FR.localization-bundle.js +6 -1
  54. package/esm/internal/translations/id-ID.localization-bundle.d.ts +6 -1
  55. package/esm/internal/translations/id-ID.localization-bundle.d.ts.map +1 -1
  56. package/esm/internal/translations/id-ID.localization-bundle.js +6 -1
  57. package/esm/internal/translations/it-IT.localization-bundle.d.ts +6 -1
  58. package/esm/internal/translations/it-IT.localization-bundle.d.ts.map +1 -1
  59. package/esm/internal/translations/it-IT.localization-bundle.js +7 -2
  60. package/esm/internal/translations/ja-JP.localization-bundle.d.ts +6 -1
  61. package/esm/internal/translations/ja-JP.localization-bundle.d.ts.map +1 -1
  62. package/esm/internal/translations/ja-JP.localization-bundle.js +6 -1
  63. package/esm/internal/translations/ko-KR.localization-bundle.d.ts +6 -1
  64. package/esm/internal/translations/ko-KR.localization-bundle.d.ts.map +1 -1
  65. package/esm/internal/translations/ko-KR.localization-bundle.js +6 -1
  66. package/esm/internal/translations/nl-NL.localization-bundle.d.ts +6 -1
  67. package/esm/internal/translations/nl-NL.localization-bundle.d.ts.map +1 -1
  68. package/esm/internal/translations/nl-NL.localization-bundle.js +6 -1
  69. package/esm/internal/translations/pl-PL.localization-bundle.d.ts +6 -1
  70. package/esm/internal/translations/pl-PL.localization-bundle.d.ts.map +1 -1
  71. package/esm/internal/translations/pl-PL.localization-bundle.js +6 -1
  72. package/esm/internal/translations/pt-BR.localization-bundle.d.ts +6 -1
  73. package/esm/internal/translations/pt-BR.localization-bundle.d.ts.map +1 -1
  74. package/esm/internal/translations/pt-BR.localization-bundle.js +6 -1
  75. package/esm/internal/translations/pt-PT.localization-bundle.d.ts +6 -1
  76. package/esm/internal/translations/pt-PT.localization-bundle.d.ts.map +1 -1
  77. package/esm/internal/translations/pt-PT.localization-bundle.js +6 -1
  78. package/esm/internal/translations/ru-RU.localization-bundle.d.ts +6 -1
  79. package/esm/internal/translations/ru-RU.localization-bundle.d.ts.map +1 -1
  80. package/esm/internal/translations/ru-RU.localization-bundle.js +6 -1
  81. package/esm/internal/translations/sl-SI.localization-bundle.d.ts +6 -1
  82. package/esm/internal/translations/sl-SI.localization-bundle.d.ts.map +1 -1
  83. package/esm/internal/translations/sl-SI.localization-bundle.js +6 -1
  84. package/esm/internal/translations/th-TH.localization-bundle.d.ts +6 -1
  85. package/esm/internal/translations/th-TH.localization-bundle.d.ts.map +1 -1
  86. package/esm/internal/translations/th-TH.localization-bundle.js +6 -1
  87. package/esm/internal/translations/tr-TR.localization-bundle.d.ts +6 -1
  88. package/esm/internal/translations/tr-TR.localization-bundle.d.ts.map +1 -1
  89. package/esm/internal/translations/tr-TR.localization-bundle.js +6 -1
  90. package/esm/internal/translations/uk-UA.localization-bundle.d.ts +6 -1
  91. package/esm/internal/translations/uk-UA.localization-bundle.d.ts.map +1 -1
  92. package/esm/internal/translations/uk-UA.localization-bundle.js +6 -1
  93. package/esm/internal/translations/vi-VN.localization-bundle.d.ts +6 -1
  94. package/esm/internal/translations/vi-VN.localization-bundle.d.ts.map +1 -1
  95. package/esm/internal/translations/vi-VN.localization-bundle.js +6 -1
  96. package/esm/internal/translations/zh-HK.localization-bundle.d.ts +6 -1
  97. package/esm/internal/translations/zh-HK.localization-bundle.d.ts.map +1 -1
  98. package/esm/internal/translations/zh-HK.localization-bundle.js +6 -1
  99. package/esm/internal/translations/zh-Hans.localization-bundle.d.ts +6 -1
  100. package/esm/internal/translations/zh-Hans.localization-bundle.d.ts.map +1 -1
  101. package/esm/internal/translations/zh-Hans.localization-bundle.js +6 -1
  102. package/esm/internal/translations/zh-Hant.localization-bundle.d.ts +6 -1
  103. package/esm/internal/translations/zh-Hant.localization-bundle.d.ts.map +1 -1
  104. package/esm/internal/translations/zh-Hant.localization-bundle.js +6 -1
  105. package/esm/sdk-ui-ext.d.ts +4 -1
  106. package/esm/share/ObjectShareDialog.js +3 -4
  107. package/esm/share/messages.d.ts +13 -2
  108. package/esm/share/messages.d.ts.map +1 -1
  109. package/esm/share/messages.js +9 -2
  110. package/esm/share/objectShareController.types.d.ts +17 -9
  111. package/esm/share/objectShareController.types.d.ts.map +1 -1
  112. package/esm/share/useAccessList.d.ts +5 -0
  113. package/esm/share/useAccessList.d.ts.map +1 -1
  114. package/esm/share/useAccessList.js +2 -0
  115. package/esm/share/useObjectShareController.d.ts.map +1 -1
  116. package/esm/share/useObjectShareController.js +40 -11
  117. package/esm/share/useObjectShareDialog.d.ts.map +1 -1
  118. package/esm/share/useObjectShareDialog.js +27 -15
  119. package/package.json +21 -21
@@ -12,6 +12,7 @@ export interface IAddWorkspaceToSubjectsProps extends IWithTelemetryProps {
12
12
  areMetricPermissionsEnabled?: boolean;
13
13
  isCreateVisualizationWorkspacePermissionEnabled?: boolean;
14
14
  areComputedAttributesEnabled?: boolean;
15
+ areVisualizationPermissionsEnabled?: boolean;
15
16
  }
16
17
  /**
17
18
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"AddWorkspaceToSubjects.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/dialogs/userManagementDialogs/AddWorkspaceToSubjects.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,mBAAmB,EAAiB,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAA0B,KAAK,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAMrF;;GAEG;AACH,MAAM,WAAW,4BAA6B,SAAQ,mBAAmB;IACrE,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,WAAW,EAAE,0BAA0B,CAAC;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,+CAA+C,CAAC,EAAE,OAAO,CAAC;IAC1D,4BAA4B,CAAC,EAAE,OAAO,CAAC;CAC1C;AAwCD;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;CAAiD,CAAC"}
1
+ {"version":3,"file":"AddWorkspaceToSubjects.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/dialogs/userManagementDialogs/AddWorkspaceToSubjects.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,mBAAmB,EAAiB,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAA0B,KAAK,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAMrF;;GAEG;AACH,MAAM,WAAW,4BAA6B,SAAQ,mBAAmB;IACrE,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,WAAW,EAAE,0BAA0B,CAAC;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,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;AA0CD;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;CAAiD,CAAC"}
@@ -6,8 +6,8 @@ import { withTelemetry } from "./TelemetryContext.js";
6
6
  import { AddWorkspace } from "./Workspace/AddWorkspace.js";
7
7
  const alignPoints = [{ align: "cc cc" }];
8
8
  const noGrantedWorkspaces = [];
9
- function AddWorkspaceToSubjectsComponent({ ids, subjectType, organizationId, onSuccess, onClose, areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled, }) {
10
- return (_jsx(OrganizationIdProvider, { organizationId: organizationId, children: _jsx(Overlay, { alignPoints: alignPoints, isModal: true, positionType: "fixed", className: "gd-user-management-dialog", resizeObserverThreshold: 0.2, children: _jsx(AddWorkspace, { ids: ids, subjectType: subjectType, grantedWorkspaces: noGrantedWorkspaces, enableBackButton: false, onSubmit: onSuccess, onCancel: onClose, onClose: onClose, areMetricPermissionsEnabled: areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled: isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled: areComputedAttributesEnabled }) }) }));
9
+ function AddWorkspaceToSubjectsComponent({ ids, subjectType, organizationId, onSuccess, onClose, areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled, areVisualizationPermissionsEnabled, }) {
10
+ return (_jsx(OrganizationIdProvider, { organizationId: organizationId, children: _jsx(Overlay, { alignPoints: alignPoints, isModal: true, positionType: "fixed", className: "gd-user-management-dialog", resizeObserverThreshold: 0.2, children: _jsx(AddWorkspace, { ids: ids, subjectType: subjectType, grantedWorkspaces: noGrantedWorkspaces, enableBackButton: false, onSubmit: onSuccess, onCancel: onClose, onClose: onClose, areMetricPermissionsEnabled: areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled: isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled: areComputedAttributesEnabled, areVisualizationPermissionsEnabled: areVisualizationPermissionsEnabled }) }) }));
11
11
  }
12
12
  /**
13
13
  * @internal
@@ -17,6 +17,7 @@ export interface IUserEditDialogProps extends IWithTelemetryProps {
17
17
  areMetricPermissionsEnabled?: boolean;
18
18
  isCreateVisualizationWorkspacePermissionEnabled?: boolean;
19
19
  areComputedAttributesEnabled?: boolean;
20
+ areVisualizationPermissionsEnabled?: boolean;
20
21
  selectedTab?: UserTabId;
21
22
  }
22
23
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"UserEditDialog.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/dialogs/userManagementDialogs/UserEditDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,OAAO,CAAC;AA0B7D,OAAO,EAAE,KAAK,mBAAmB,EAAiB,MAAM,uBAAuB,CAAC;AAChF,OAAO,EACH,KAAK,kBAAkB,EAEvB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACjB,MAAM,YAAY,CAAC;AAUpB;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,kBAAkB,KAAK,YAAY,CAAC;IACxE,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,+CAA+C,CAAC,EAAE,OAAO,CAAC;IAC1D,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,WAAW,CAAC,EAAE,SAAS,CAAC;CAC3B;AA2RD;;GAEG;AACH,eAAO,MAAM,cAAc;;;CAAyC,CAAC"}
1
+ {"version":3,"file":"UserEditDialog.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/dialogs/userManagementDialogs/UserEditDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,OAAO,CAAC;AA0B7D,OAAO,EAAE,KAAK,mBAAmB,EAAiB,MAAM,uBAAuB,CAAC;AAChF,OAAO,EACH,KAAK,kBAAkB,EAEvB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACjB,MAAM,YAAY,CAAC;AAUpB;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,kBAAkB,KAAK,YAAY,CAAC;IACxE,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,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,WAAW,CAAC,EAAE,SAAS,CAAC;CAC3B;AA6RD;;GAEG;AACH,eAAO,MAAM,cAAc;;;CAAyC,CAAC"}
@@ -23,7 +23,7 @@ import { ViewDialog } from "./ViewDialog.js";
23
23
  import { AddWorkspace } from "./Workspace/AddWorkspace.js";
24
24
  import { WorkspaceList } from "./Workspace/WorkspaceList.js";
25
25
  const alignPoints = [{ align: "cc cc" }];
26
- function UserEditDialogComponent({ userId, organizationId, isAdmin, onSuccess, onClose, initialView = "VIEW", changeUserMembership = false, renderDataSourceIcon, isSystemAccountFilteringEnabled = false, areMetricPermissionsEnabled = false, isCreateVisualizationWorkspacePermissionEnabled = false, areComputedAttributesEnabled = false, selectedTab = undefined, }) {
26
+ function UserEditDialogComponent({ userId, organizationId, isAdmin, onSuccess, onClose, initialView = "VIEW", changeUserMembership = false, renderDataSourceIcon, isSystemAccountFilteringEnabled = false, areMetricPermissionsEnabled = false, isCreateVisualizationWorkspacePermissionEnabled = false, areComputedAttributesEnabled = false, areVisualizationPermissionsEnabled = false, selectedTab = undefined, }) {
27
27
  const intl = useIntl();
28
28
  const { dialogMode, setDialogMode } = useUserDialogMode(initialView);
29
29
  const { user, isCurrentlyAdmin, onUserDetailsChanged, setIsAdmin, error, isLoading: userIsLoading, } = useUser(userId, organizationId, isAdmin, onSuccess);
@@ -87,7 +87,7 @@ function UserEditDialogComponent({ userId, organizationId, isAdmin, onSuccess, o
87
87
  };
88
88
  return (_jsxs(OrganizationIdProvider, { organizationId: organizationId, children: [isConfirmDeleteOpened ? (_jsx(DeleteConfirmDialog, { titleText: intl.formatMessage(messages.deleteUserConfirmTitle), bodyText: intl.formatMessage(messages.deleteUserConfirmBody), onConfirm: deleteUser, isProcessing: isDeleteUserProcessing, onCancel: onCloseDeleteDialog })) : null, _jsx(Overlay, { alignPoints: alignPoints, isModal: true, positionType: "fixed", className: dialogOverlayClassNames, resizeObserverThreshold: 0.2, children: _jsx("div", { className: dialogWrapperClassNames, children: isLoading ? (_jsxs(_Fragment, { children: [_jsx(LoadingComponent, { className: "gd-user-management-dialog-loading" }), _jsx(ErrorDialog, { dialogTitle: "", onClose: onClose })] })) : error ? (_jsx(ErrorDialog, { onClose: onClose, dialogTitle: intl.formatMessage(messages.userLoadingErrorTitle), children: _jsx(Message, { type: "error", className: "gd-user-management-dialog-error", children: intl.formatMessage(isUnexpectedResponseError(error) && error.httpStatus === 404
89
89
  ? messages.userLoadingErrorNotExist
90
- : messages.userLoadingErrorUnknown) }) })) : (_jsxs(_Fragment, { children: [dialogMode === "VIEW" && (_jsxs(ViewDialog, { dialogTitle: extractUserName(user), isAdmin: isCurrentlyAdmin, isDeleteLinkEnabled: !isBootstrapUser(user), deleteLinkDisabledTooltipTextId: messages.deleteUserDisabledTooltip.id, deleteLinkText: intl.formatMessage(messages.deleteUserLink), onOpenDeleteDialog: onOpenDeleteDialog, onClose: onClose, onEdit: () => setDialogMode(editButtonMode), editButtonText: editButtonText, editButtonIconClassName: editButtonIconClassName, children: [isCurrentlyAdmin ? (_jsx("div", { className: "gd-message information gd-user-management-admin-alert s-admin-message", children: _jsx("div", { className: "gd-message-text", children: intl.formatMessage(messages.adminAlert) }) })) : null, _jsx(Tabs, { selectedTabId: selectedTabId.id, onTabSelect: setSelectedTabId, tabs: tabs, className: "gd-user-management-dialog-tabs s-user-management-tabs" }), selectedTabId.id === userDialogTabsMessages.workspaces.id && (_jsx(WorkspaceList, { workspaces: grantedWorkspaces, subjectType: "user", mode: "VIEW", onDelete: removeGrantedWorkspace, onChange: updateGrantedWorkspace, onClick: handleWorkspaceEdit })), selectedTabId.id === userDialogTabsMessages.userGroups.id && (_jsx(UserGroupsList, { userGroups: grantedUserGroups, mode: "VIEW", onDelete: removeGrantedUserGroup, isBootstrapUser: isBootstrapUser(user), bootstrapUserGroupId: bootstrapUserGroupId })), selectedTabId.id === userDialogTabsMessages.details.id && (_jsx(UserDetailsView, { user: user, isAdmin: isCurrentlyAdmin, isBootstrapUser: isBootstrapUser(user), mode: "VIEW", isSystemAccountFilteringEnabled: isSystemAccountFilteringEnabled })), selectedTabId.id === userDialogTabsMessages.dataSources.id && (_jsx(DataSourceList, { dataSources: grantedDataSources, subjectType: "user", mode: "VIEW", onDelete: removeGrantedDataSource, onChange: updateGrantedDataSource, renderDataSourceIcon: renderDataSourceIcon }))] })), dialogMode === "WORKSPACE" && (_jsx(AddWorkspace, { ids: [userId], subjectType: "user", grantedWorkspaces: grantedWorkspaces, enableBackButton: !isOpenedInEditMode, onSubmit: handleWorkspaceChanged, onCancel: isOpenedInEditMode ? onClose : handleWorkspaceCancel, onClose: onClose, editWorkspace: workspaceToEdit, areMetricPermissionsEnabled: areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled: isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled: areComputedAttributesEnabled })), dialogMode === "USER_GROUPS" && (_jsx(AddUserGroup, { userIds: [userId], grantedUserGroups: grantedUserGroups, enableBackButton: !isOpenedInEditMode, onSubmit: onUserGroupsChanged, onCancel: isOpenedInEditMode ? onClose : () => setDialogMode("VIEW"), onClose: onClose })), dialogMode === "DATA_SOURCES" && (_jsx(AddDataSource, { ids: [userId], subjectType: "user", grantedDataSources: grantedDataSources, enableBackButton: !isOpenedInEditMode, onSubmit: onDataSourcesChanged, onCancel: isOpenedInEditMode ? onClose : () => setDialogMode("VIEW"), onClose: onClose, renderDataSourceIcon: renderDataSourceIcon })), dialogMode === "DETAIL" && (_jsx(EditUserDetails, { user: user, isAdmin: isCurrentlyAdmin, isBootstrapUser: isBootstrapUser(user), enableBackButton: !isOpenedInEditMode, changeUserMembership: changeUserMembership, isSystemAccountFilteringEnabled: isSystemAccountFilteringEnabled, onSubmit: onUserDetailsChanged, onCancel: isOpenedInEditMode ? onClose : () => setDialogMode("VIEW"), onClose: onClose, removeAdminGroup: removeAdminGroup }))] })) }) })] }));
90
+ : messages.userLoadingErrorUnknown) }) })) : (_jsxs(_Fragment, { children: [dialogMode === "VIEW" && (_jsxs(ViewDialog, { dialogTitle: extractUserName(user), isAdmin: isCurrentlyAdmin, isDeleteLinkEnabled: !isBootstrapUser(user), deleteLinkDisabledTooltipTextId: messages.deleteUserDisabledTooltip.id, deleteLinkText: intl.formatMessage(messages.deleteUserLink), onOpenDeleteDialog: onOpenDeleteDialog, onClose: onClose, onEdit: () => setDialogMode(editButtonMode), editButtonText: editButtonText, editButtonIconClassName: editButtonIconClassName, children: [isCurrentlyAdmin ? (_jsx("div", { className: "gd-message information gd-user-management-admin-alert s-admin-message", children: _jsx("div", { className: "gd-message-text", children: intl.formatMessage(messages.adminAlert) }) })) : null, _jsx(Tabs, { selectedTabId: selectedTabId.id, onTabSelect: setSelectedTabId, tabs: tabs, className: "gd-user-management-dialog-tabs s-user-management-tabs" }), selectedTabId.id === userDialogTabsMessages.workspaces.id && (_jsx(WorkspaceList, { workspaces: grantedWorkspaces, subjectType: "user", mode: "VIEW", onDelete: removeGrantedWorkspace, onChange: updateGrantedWorkspace, onClick: handleWorkspaceEdit })), selectedTabId.id === userDialogTabsMessages.userGroups.id && (_jsx(UserGroupsList, { userGroups: grantedUserGroups, mode: "VIEW", onDelete: removeGrantedUserGroup, isBootstrapUser: isBootstrapUser(user), bootstrapUserGroupId: bootstrapUserGroupId })), selectedTabId.id === userDialogTabsMessages.details.id && (_jsx(UserDetailsView, { user: user, isAdmin: isCurrentlyAdmin, isBootstrapUser: isBootstrapUser(user), mode: "VIEW", isSystemAccountFilteringEnabled: isSystemAccountFilteringEnabled })), selectedTabId.id === userDialogTabsMessages.dataSources.id && (_jsx(DataSourceList, { dataSources: grantedDataSources, subjectType: "user", mode: "VIEW", onDelete: removeGrantedDataSource, onChange: updateGrantedDataSource, renderDataSourceIcon: renderDataSourceIcon }))] })), dialogMode === "WORKSPACE" && (_jsx(AddWorkspace, { ids: [userId], subjectType: "user", grantedWorkspaces: grantedWorkspaces, enableBackButton: !isOpenedInEditMode, onSubmit: handleWorkspaceChanged, onCancel: isOpenedInEditMode ? onClose : handleWorkspaceCancel, onClose: onClose, editWorkspace: workspaceToEdit, areMetricPermissionsEnabled: areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled: isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled: areComputedAttributesEnabled, areVisualizationPermissionsEnabled: areVisualizationPermissionsEnabled })), dialogMode === "USER_GROUPS" && (_jsx(AddUserGroup, { userIds: [userId], grantedUserGroups: grantedUserGroups, enableBackButton: !isOpenedInEditMode, onSubmit: onUserGroupsChanged, onCancel: isOpenedInEditMode ? onClose : () => setDialogMode("VIEW"), onClose: onClose })), dialogMode === "DATA_SOURCES" && (_jsx(AddDataSource, { ids: [userId], subjectType: "user", grantedDataSources: grantedDataSources, enableBackButton: !isOpenedInEditMode, onSubmit: onDataSourcesChanged, onCancel: isOpenedInEditMode ? onClose : () => setDialogMode("VIEW"), onClose: onClose, renderDataSourceIcon: renderDataSourceIcon })), dialogMode === "DETAIL" && (_jsx(EditUserDetails, { user: user, isAdmin: isCurrentlyAdmin, isBootstrapUser: isBootstrapUser(user), enableBackButton: !isOpenedInEditMode, changeUserMembership: changeUserMembership, isSystemAccountFilteringEnabled: isSystemAccountFilteringEnabled, onSubmit: onUserDetailsChanged, onCancel: isOpenedInEditMode ? onClose : () => setDialogMode("VIEW"), onClose: onClose, removeAdminGroup: removeAdminGroup }))] })) }) })] }));
91
91
  }
92
92
  /**
93
93
  * @internal
@@ -15,6 +15,7 @@ export interface IUserGroupEditDialogProps extends IWithTelemetryProps {
15
15
  areMetricPermissionsEnabled?: boolean;
16
16
  isCreateVisualizationWorkspacePermissionEnabled?: boolean;
17
17
  areComputedAttributesEnabled?: boolean;
18
+ areVisualizationPermissionsEnabled?: boolean;
18
19
  }
19
20
  /**
20
21
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"UserGroupEditDialog.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/dialogs/userManagementDialogs/UserGroupEditDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,OAAO,CAAC;AA0B7D,OAAO,EAAE,KAAK,mBAAmB,EAAiB,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,KAAK,kBAAkB,EAA0B,KAAK,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAU3G;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,kBAAkB,KAAK,YAAY,CAAC;IACxE,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,+CAA+C,CAAC,EAAE,OAAO,CAAC;IAC1D,4BAA4B,CAAC,EAAE,OAAO,CAAC;CAC1C;AAqRD;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;CAA8C,CAAC"}
1
+ {"version":3,"file":"UserGroupEditDialog.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/dialogs/userManagementDialogs/UserGroupEditDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,OAAO,CAAC;AA0B7D,OAAO,EAAE,KAAK,mBAAmB,EAAiB,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,KAAK,kBAAkB,EAA0B,KAAK,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAU3G;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,kBAAkB,KAAK,YAAY,CAAC;IACxE,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;AAuRD;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;CAA8C,CAAC"}
@@ -23,7 +23,7 @@ import { ViewDialog } from "./ViewDialog.js";
23
23
  import { AddWorkspace } from "./Workspace/AddWorkspace.js";
24
24
  import { WorkspaceList } from "./Workspace/WorkspaceList.js";
25
25
  const alignPoints = [{ align: "cc cc" }];
26
- function UserGroupEditDialogComponent({ userGroupId, organizationId, isAdmin, onSuccess, onClose, initialView = "VIEW", renderDataSourceIcon, areMetricPermissionsEnabled = false, isCreateVisualizationWorkspacePermissionEnabled = false, areComputedAttributesEnabled = false, }) {
26
+ function UserGroupEditDialogComponent({ userGroupId, organizationId, isAdmin, onSuccess, onClose, initialView = "VIEW", renderDataSourceIcon, areMetricPermissionsEnabled = false, isCreateVisualizationWorkspacePermissionEnabled = false, areComputedAttributesEnabled = false, areVisualizationPermissionsEnabled = false, }) {
27
27
  const intl = useIntl();
28
28
  const { dialogMode, setDialogMode } = useUserGroupDialogMode(initialView);
29
29
  const { userGroup, onUserGroupDetailsChanged, error, isLoading: userGroupIsLoading, } = useUserGroup(userGroupId, organizationId, onSuccess);
@@ -87,7 +87,7 @@ function UserGroupEditDialogComponent({ userGroupId, organizationId, isAdmin, on
87
87
  ? messages.userGroupLoadingErrorNotExist
88
88
  : messages.userGroupLoadingErrorUnknown) }) })) : (_jsxs(_Fragment, { children: [dialogMode === "VIEW" && (_jsxs(ViewDialog, { dialogTitle: extractUserGroupName(userGroup), isAdmin: isAdmin, isDeleteLinkEnabled: !isBootstrapUserGroup(userGroup) && grantedUsers?.length === 0, deleteLinkDisabledTooltipTextId: isBootstrapUserGroup(userGroup)
89
89
  ? messages.deleteAdminUserGroupTooltip.id
90
- : messages.deleteNonEmptyUserGroupTooltip.id, deleteLinkText: intl.formatMessage(messages.deleteUserGroupLink), onOpenDeleteDialog: onOpenDeleteDialog, onClose: onClose, onEdit: () => setDialogMode(editButtonMode), editButtonText: editButtonText, editButtonIconClassName: editButtonIconClassName, children: [isAdmin ? (_jsx("div", { className: "gd-message information gd-user-management-admin-alert s-admin-message", children: _jsx("div", { className: "gd-message-text", children: intl.formatMessage(messages.adminGroupAlert) }) })) : null, _jsx(Tabs, { selectedTabId: selectedTabId.id, onTabSelect: setSelectedTabId, tabs: tabs, className: "gd-user-management-dialog-tabs s-user-management-tabs" }), selectedTabId.id === userGroupDialogTabsMessages.workspaces.id && (_jsx(WorkspaceList, { workspaces: grantedWorkspaces, subjectType: "userGroup", mode: "VIEW", onDelete: removeGrantedWorkspace, onChange: updateGrantedWorkspace, onClick: handleWorkspaceEdit })), selectedTabId.id === userGroupDialogTabsMessages.dataSources.id && (_jsx(DataSourceList, { dataSources: grantedDataSources, subjectType: "userGroup", mode: "VIEW", onDelete: removeGrantedDataSource, onChange: updateGrantedDataSource, renderDataSourceIcon: renderDataSourceIcon })), selectedTabId.id === userGroupDialogTabsMessages.users.id && (_jsx(UsersList, { users: grantedUsers, mode: "VIEW", onDelete: removeGrantedUsers, isBootstrapUserGroup: isBootstrapUserGroup(userGroup), bootstrapUserId: bootstrapUserId })), selectedTabId.id === userGroupDialogTabsMessages.details.id && (_jsx(UserGroupDetailsView, { userGroup: userGroup, mode: "VIEW" }))] })), dialogMode === "WORKSPACE" && (_jsx(AddWorkspace, { ids: [userGroupId], subjectType: "userGroup", grantedWorkspaces: grantedWorkspaces, enableBackButton: !isOpenedInEditMode, onSubmit: handleWorkspaceChanged, onCancel: isOpenedInEditMode ? onClose : handleWorkspaceCancel, onClose: onClose, editWorkspace: workspaceToEdit, areMetricPermissionsEnabled: areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled: isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled: areComputedAttributesEnabled })), dialogMode === "USERS" && (_jsx(AddUser, { userGroupIds: [userGroupId], grantedUsers: grantedUsers, enableBackButton: !isOpenedInEditMode, onSubmit: onUsersChanged, onCancel: isOpenedInEditMode ? onClose : () => setDialogMode("VIEW"), onClose: onClose })), dialogMode === "DATA_SOURCES" && (_jsx(AddDataSource, { ids: [userGroupId], subjectType: "userGroup", grantedDataSources: grantedDataSources, enableBackButton: !isOpenedInEditMode, onSubmit: onDataSourcesChanged, onCancel: isOpenedInEditMode ? onClose : () => setDialogMode("VIEW"), onClose: onClose, renderDataSourceIcon: renderDataSourceIcon })), dialogMode === "DETAIL" && (_jsx(EditUserGroupDetails, { userGroup: userGroup, enableBackButton: !isOpenedInEditMode, onSubmit: onUserGroupDetailsChanged, onCancel: isOpenedInEditMode ? onClose : () => setDialogMode("VIEW"), onClose: onClose }))] })) }) })] }));
90
+ : messages.deleteNonEmptyUserGroupTooltip.id, deleteLinkText: intl.formatMessage(messages.deleteUserGroupLink), onOpenDeleteDialog: onOpenDeleteDialog, onClose: onClose, onEdit: () => setDialogMode(editButtonMode), editButtonText: editButtonText, editButtonIconClassName: editButtonIconClassName, children: [isAdmin ? (_jsx("div", { className: "gd-message information gd-user-management-admin-alert s-admin-message", children: _jsx("div", { className: "gd-message-text", children: intl.formatMessage(messages.adminGroupAlert) }) })) : null, _jsx(Tabs, { selectedTabId: selectedTabId.id, onTabSelect: setSelectedTabId, tabs: tabs, className: "gd-user-management-dialog-tabs s-user-management-tabs" }), selectedTabId.id === userGroupDialogTabsMessages.workspaces.id && (_jsx(WorkspaceList, { workspaces: grantedWorkspaces, subjectType: "userGroup", mode: "VIEW", onDelete: removeGrantedWorkspace, onChange: updateGrantedWorkspace, onClick: handleWorkspaceEdit })), selectedTabId.id === userGroupDialogTabsMessages.dataSources.id && (_jsx(DataSourceList, { dataSources: grantedDataSources, subjectType: "userGroup", mode: "VIEW", onDelete: removeGrantedDataSource, onChange: updateGrantedDataSource, renderDataSourceIcon: renderDataSourceIcon })), selectedTabId.id === userGroupDialogTabsMessages.users.id && (_jsx(UsersList, { users: grantedUsers, mode: "VIEW", onDelete: removeGrantedUsers, isBootstrapUserGroup: isBootstrapUserGroup(userGroup), bootstrapUserId: bootstrapUserId })), selectedTabId.id === userGroupDialogTabsMessages.details.id && (_jsx(UserGroupDetailsView, { userGroup: userGroup, mode: "VIEW" }))] })), dialogMode === "WORKSPACE" && (_jsx(AddWorkspace, { ids: [userGroupId], subjectType: "userGroup", grantedWorkspaces: grantedWorkspaces, enableBackButton: !isOpenedInEditMode, onSubmit: handleWorkspaceChanged, onCancel: isOpenedInEditMode ? onClose : handleWorkspaceCancel, onClose: onClose, editWorkspace: workspaceToEdit, areMetricPermissionsEnabled: areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled: isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled: areComputedAttributesEnabled, areVisualizationPermissionsEnabled: areVisualizationPermissionsEnabled })), dialogMode === "USERS" && (_jsx(AddUser, { userGroupIds: [userGroupId], grantedUsers: grantedUsers, enableBackButton: !isOpenedInEditMode, onSubmit: onUsersChanged, onCancel: isOpenedInEditMode ? onClose : () => setDialogMode("VIEW"), onClose: onClose })), dialogMode === "DATA_SOURCES" && (_jsx(AddDataSource, { ids: [userGroupId], subjectType: "userGroup", grantedDataSources: grantedDataSources, enableBackButton: !isOpenedInEditMode, onSubmit: onDataSourcesChanged, onCancel: isOpenedInEditMode ? onClose : () => setDialogMode("VIEW"), onClose: onClose, renderDataSourceIcon: renderDataSourceIcon })), dialogMode === "DETAIL" && (_jsx(EditUserGroupDetails, { userGroup: userGroup, enableBackButton: !isOpenedInEditMode, onSubmit: onUserGroupDetailsChanged, onCancel: isOpenedInEditMode ? onClose : () => setDialogMode("VIEW"), onClose: onClose }))] })) }) })] }));
91
91
  }
92
92
  /**
93
93
  * @internal
@@ -11,6 +11,7 @@ export interface IAddWorkspaceProps {
11
11
  areMetricPermissionsEnabled?: boolean;
12
12
  isCreateVisualizationWorkspacePermissionEnabled?: boolean;
13
13
  areComputedAttributesEnabled?: boolean;
14
+ areVisualizationPermissionsEnabled?: boolean;
14
15
  }
15
- export declare function AddWorkspace({ ids, subjectType, grantedWorkspaces, enableBackButton, onSubmit, onCancel, onClose, editWorkspace, areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled, }: IAddWorkspaceProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function AddWorkspace({ ids, subjectType, grantedWorkspaces, enableBackButton, onSubmit, onCancel, onClose, editWorkspace, areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled, areVisualizationPermissionsEnabled, }: IAddWorkspaceProps): import("react/jsx-runtime").JSX.Element;
16
17
  //# sourceMappingURL=AddWorkspace.d.ts.map
@@ -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;CAC1C;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,GAC/B,EAAE,kBAAkB,2CAwEpB"}
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,2CAyEpB"}
@@ -7,12 +7,12 @@ import { messages } from "../locales.js";
7
7
  import { AddSingleWorkspaceSelect } from "./AddSingleWorkspaceSelect.js";
8
8
  import { useAddWorkspace } from "./useAddWorkspace.js";
9
9
  import { GranularPermissions } from "./WorkspaceItem/GranularPermissions.js";
10
- import { areRedundantPermissionsPresent, areWorkspacePermissionsEqual, } from "./WorkspaceItem/granularPermissionUtils.js";
11
- export function AddWorkspace({ ids, subjectType, grantedWorkspaces, enableBackButton, onSubmit, onCancel, onClose, editWorkspace, areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled, }) {
10
+ import { areRedundantPermissionsPresent, haveWorkspacePermissionsChanged, } from "./WorkspaceItem/granularPermissionUtils.js";
11
+ export function AddWorkspace({ ids, subjectType, grantedWorkspaces, enableBackButton, onSubmit, onCancel, onClose, editWorkspace, areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled, areVisualizationPermissionsEnabled, }) {
12
12
  const intl = useIntl();
13
13
  const { addedWorkspaces, isProcessing, onAdd, onChange, onOverwriteSelect } = useAddWorkspace(ids, subjectType, onSubmit, onCancel, editWorkspace);
14
14
  const isGranularPermissionsChanged = useMemo(() => {
15
- return editWorkspace ? areWorkspacePermissionsEqual(addedWorkspaces[0], editWorkspace) : true;
15
+ return editWorkspace ? haveWorkspacePermissionsChanged(addedWorkspaces[0], editWorkspace) : true;
16
16
  }, [addedWorkspaces, editWorkspace]);
17
17
  const showRedundancyWarningMessage = useMemo(() => {
18
18
  return editWorkspace ? areRedundantPermissionsPresent(editWorkspace.permissions) : false;
@@ -25,5 +25,5 @@ export function AddWorkspace({ ids, subjectType, grantedWorkspaces, enableBackBu
25
25
  id: "userManagement.workspace.granularPermission.help",
26
26
  }), href: "https://www.gooddata.com/docs/cloud/manage-organization/manage-permissions/set-permissions-for-workspace/", iconClass: "gd-icon-circle-question" }) }));
27
27
  }, [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], onChange: onChange, showRedundancyWarningMessage: showRedundancyWarningMessage, areMetricPermissionsEnabled: areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled: isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled: areComputedAttributesEnabled })] }));
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], onChange: onChange, showRedundancyWarningMessage: showRedundancyWarningMessage, areMetricPermissionsEnabled: areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled: isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled: areComputedAttributesEnabled, areVisualizationPermissionsEnabled: areVisualizationPermissionsEnabled })] }));
29
29
  }
@@ -6,7 +6,8 @@ interface IGranularPermissionsProps {
6
6
  areMetricPermissionsEnabled?: boolean;
7
7
  isCreateVisualizationWorkspacePermissionEnabled?: boolean;
8
8
  areComputedAttributesEnabled?: boolean;
9
+ areVisualizationPermissionsEnabled?: boolean;
9
10
  }
10
- export declare function GranularPermissions({ workspace, onChange, showRedundancyWarningMessage, areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled, }: IGranularPermissionsProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function GranularPermissions({ workspace, onChange, showRedundancyWarningMessage, areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled, areVisualizationPermissionsEnabled, }: IGranularPermissionsProps): import("react/jsx-runtime").JSX.Element;
11
12
  export {};
12
13
  //# 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,EAIzB,MAAM,gBAAgB,CAAC;AA4BxB,UAAU,yBAAyB;IAC/B,SAAS,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzC,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;CAC1C;AAED,wBAAgB,mBAAmB,CAAC,EAChC,SAAS,EACT,QAAQ,EACR,4BAA4B,EAC5B,2BAAmC,EACnC,+CAAuD,EACvD,4BAAoC,GACvC,EAAE,yBAAyB,2CA8I3B"}
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,EAIzB,MAAM,gBAAgB,CAAC;AA2BxB,UAAU,yBAAyB;IAC/B,SAAS,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzC,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;CAChD;AAED,wBAAgB,mBAAmB,CAAC,EAChC,SAAS,EACT,QAAQ,EACR,4BAA4B,EAC5B,2BAAmC,EACnC,+CAAuD,EACvD,4BAAoC,EACpC,kCAA0C,GAC7C,EAAE,yBAAyB,2CAoI3B"}
@@ -1,10 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- // (C) 2024-2026 GoodData Corporation
3
- import { useCallback } from "react";
4
2
  import { FormattedMessage, useIntl } from "react-intl";
5
3
  import { DialogListHeader, Message } from "@gooddata/sdk-ui-kit";
6
4
  import { AdditionalAccessPermissionItem, WorkspaceAccessPermissionItem } from "./GranularPermissionsItems.js";
7
- import { getGranularPermissions, getImplicitGranularPermissions, getWorkspacePermission, isExportPermissionIndefinite, isPermissionDisabled, removeRedundantPermissions, sanitizeExportPermissions, workspacePermissions, } from "./granularPermissionUtils.js";
5
+ import { getGranularPermissions, getWorkspacePermission, isExportPermissionIndefinite, isPermissionDisabled, sanitizeExportPermissions, workspacePermissions, } from "./granularPermissionUtils.js";
8
6
  import { getWorkspaceAccessPermissionDescription, workspaceGranularPermissionMessages } from "./locales.js";
9
7
  import { QuestionMarkIcon } from "./QuestionMarkIcon.js";
10
8
  const granularPermissions = [
@@ -16,38 +14,40 @@ const granularPermissions = [
16
14
  { id: "EXPORT_TABULAR", enabled: true, group: true },
17
15
  { id: "CREATE_METRIC", enabled: true },
18
16
  { id: "CREATE_VISUALIZATION", enabled: true },
17
+ { id: "MANAGE_VISUALIZATIONS", enabled: true },
19
18
  { id: "CREATE_FILTER_VIEW", enabled: true },
20
19
  ];
21
- export function GranularPermissions({ workspace, onChange, showRedundancyWarningMessage, areMetricPermissionsEnabled = false, isCreateVisualizationWorkspacePermissionEnabled = false, areComputedAttributesEnabled = false, }) {
20
+ export function GranularPermissions({ workspace, onChange, showRedundancyWarningMessage, areMetricPermissionsEnabled = false, isCreateVisualizationWorkspacePermissionEnabled = false, areComputedAttributesEnabled = false, areVisualizationPermissionsEnabled = false, }) {
22
21
  const intl = useIntl();
23
- const { permissions: selectedPermissions = [], isHierarchical = false } = workspace ?? {};
22
+ if (!workspace) {
23
+ return (_jsx("div", { className: "gd-granular-permissions-empty", children: _jsx(FormattedMessage, { id: "userManagement.workspace.granularPermission.noWorkspace" }) }));
24
+ }
25
+ const { permissions: selectedPermissions, isHierarchical } = workspace;
24
26
  const selectedWorkspacePermission = getWorkspacePermission(selectedPermissions);
25
27
  const selectedGranularPermissions = getGranularPermissions(selectedPermissions);
28
+ const chosenGranularPermissions = selectedPermissions.filter((p) => !workspacePermissions.includes(p));
26
29
  const granularItems = granularPermissions.filter(({ id }) => (id !== "CREATE_METRIC" || areMetricPermissionsEnabled) &&
27
30
  (id !== "CREATE_VISUALIZATION" || isCreateVisualizationWorkspacePermissionEnabled) &&
28
- (id !== "CREATE_COMPUTED_ATTRIBUTE" || areComputedAttributesEnabled));
29
- const handleChange = useCallback((permissions, isHierarchical) => {
30
- const sanitizedPermissions = removeRedundantPermissions(permissions);
31
- onChange({ ...workspace, permissions: sanitizedPermissions, isHierarchical });
32
- }, [onChange, workspace]);
33
- const handleHierarchicalChange = useCallback((isHierarchical) => {
34
- handleChange([selectedWorkspacePermission, ...selectedGranularPermissions], isHierarchical);
35
- }, [handleChange, selectedGranularPermissions, selectedWorkspacePermission]);
36
- const handleWorkspacePermissionChange = useCallback((workspacePermission) => {
37
- const updatedGranularPermissions = getImplicitGranularPermissions(workspacePermission);
38
- handleChange([workspacePermission, ...updatedGranularPermissions], isHierarchical);
39
- }, [handleChange, isHierarchical]);
40
- const handleGranularPermissionChange = useCallback((granularPermission) => {
31
+ (id !== "CREATE_COMPUTED_ATTRIBUTE" || areComputedAttributesEnabled) &&
32
+ (id !== "MANAGE_VISUALIZATIONS" || areVisualizationPermissionsEnabled));
33
+ // Unsanitized until save, so unchecking or leaving Manage brings earlier choices back.
34
+ const handleChange = (permissions, isHierarchical) => {
35
+ onChange({ ...workspace, permissions, isHierarchical });
36
+ };
37
+ const handleHierarchicalChange = (isHierarchical) => {
38
+ handleChange([selectedWorkspacePermission, ...chosenGranularPermissions], isHierarchical);
39
+ };
40
+ const handleWorkspacePermissionChange = (workspacePermission) => {
41
+ handleChange([workspacePermission, ...chosenGranularPermissions], isHierarchical);
42
+ };
43
+ const handleGranularPermissionChange = (granularPermission) => {
41
44
  const isPermissionSelected = selectedGranularPermissions.includes(granularPermission);
42
45
  const updatedGranularPermissions = isPermissionSelected
43
- ? selectedGranularPermissions.filter((p) => p !== granularPermission)
44
- : [...selectedGranularPermissions, granularPermission];
46
+ ? chosenGranularPermissions.filter((p) => p !== granularPermission)
47
+ : [...chosenGranularPermissions, granularPermission];
45
48
  const sanitizedGranularPermissions = sanitizeExportPermissions(granularPermission, updatedGranularPermissions, !isPermissionSelected);
46
49
  handleChange([selectedWorkspacePermission, ...sanitizedGranularPermissions], isHierarchical);
47
- }, [handleChange, isHierarchical, selectedGranularPermissions, selectedWorkspacePermission]);
48
- if (!workspace) {
49
- return (_jsx("div", { className: "gd-granular-permissions-empty", children: _jsx(FormattedMessage, { id: "userManagement.workspace.granularPermission.noWorkspace" }) }));
50
- }
50
+ };
51
51
  return (_jsxs("div", { className: "gd-granular-permissions", children: [_jsxs("div", { className: "gd-granular-permissions__hierarchy", children: [_jsxs("label", { className: "input-checkbox-toggle", children: [_jsx("input", { type: "checkbox", checked: isHierarchical, onChange: (e) => handleHierarchicalChange(e.currentTarget.checked) }), _jsx("span", { className: "input-label-text", children: _jsx(FormattedMessage, { id: "userManagement.workspace.granularPermission.hierarchy" }) })] }), _jsx("div", { className: "gd-granular-permissions__hierarchy-icon", children: _jsx(QuestionMarkIcon, { bubbleTextId: workspaceGranularPermissionMessages.hierarchyTooltip.id, width: 14, height: 14 }) })] }), _jsx(DialogListHeader, { title: intl.formatMessage({
52
52
  id: "userManagement.workspace.granularPermission.workspaceAccess.title",
53
53
  }) }), _jsx("div", { className: "gd-granular-permissions__workspace-access", children: workspacePermissions.map((workspacePermission) => {
@@ -44,11 +44,11 @@ export declare const isPermissionDisabled: (permission: WorkspacePermission, sel
44
44
  */
45
45
  export declare const removeRedundantPermissions: (permissions: WorkspacePermissions) => WorkspacePermissions;
46
46
  /**
47
- * Returns whether two workspaces have the same permissions.
47
+ * Returns whether two workspaces differ in hierarchy or permissions.
48
48
  *
49
- * Remark: possible implicit permissions are not removed here.
49
+ * Remark: compares what a save would store, so implicit permissions do not count.
50
50
  */
51
- export declare const areWorkspacePermissionsEqual: (workspace1: IGrantedWorkspace, workspace2: IGrantedWorkspace) => boolean;
51
+ export declare const haveWorkspacePermissionsChanged: (workspace1: IGrantedWorkspace, workspace2: IGrantedWorkspace) => 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;AAE3F;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,wBAClB,mBAAmB,KACzC,oBAoBF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,gBAAiB,oBAAoB,KAAG,mBAQ1E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,gBAAiB,oBAAoB,KAAG,oBAW1E,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,YAUpD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,gBAAiB,oBAAoB,KAAG,oBAwB9E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,eACzB,iBAAiB,cACjB,iBAAiB,YAUhC,CAAC;AAqCF;;GAEG;AACH,eAAO,MAAM,gCAAgC,gBAC5B,oBAAoB,QAC3B,SAAS,KAChB,MAmBF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,gBAAiB,oBAAoB,KAAG,OAGlF,CAAC"}
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,KACzC,oBAqBF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,gBAAiB,oBAAoB,KAAG,mBAQ1E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,gBAAiB,oBAAoB,KAAG,oBAY1E,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,YASpD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,gBAAiB,oBAAoB,KAAG,oBAoB9E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,eAC5B,iBAAiB,cACjB,iBAAiB,YAahC,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"}
@@ -4,6 +4,12 @@ import { workspaceGranularPermissionMessages } from "./locales.js";
4
4
  export const workspacePermissions = ["MANAGE", "ANALYZE", "VIEW"];
5
5
  const exportSubPermissions = ["EXPORT_PDF", "EXPORT_TABULAR"];
6
6
  export const exportPermissions = ["EXPORT", ...exportSubPermissions];
7
+ // Shown checked and locked under the including permission, never stored.
8
+ const includedPermissions = {
9
+ EXPORT: exportSubPermissions,
10
+ MANAGE_VISUALIZATIONS: ["CREATE_VISUALIZATION"],
11
+ };
12
+ const includedBy = (permissions) => permissions.flatMap((p) => includedPermissions[p] ?? []);
7
13
  /**
8
14
  * Main workspace permissions imply some of the granular permissions that
9
15
  * we want to explicitly show on UI but not necessarily store on backend.
@@ -24,6 +30,7 @@ export const getImplicitGranularPermissions = (workspacePermission) => {
24
30
  "CREATE_AUTOMATION",
25
31
  "CREATE_METRIC",
26
32
  "CREATE_VISUALIZATION",
33
+ "MANAGE_VISUALIZATIONS",
27
34
  "CREATE_COMPUTED_ATTRIBUTE",
28
35
  "CREATE_FILTER_VIEW",
29
36
  ];
@@ -52,11 +59,12 @@ export const getGranularPermissions = (permissions) => {
52
59
  const workspacePermission = getWorkspacePermission(permissions);
53
60
  const implicitGranularPermissions = getImplicitGranularPermissions(workspacePermission);
54
61
  const onlyGranularPermissions = permissions.filter((p) => !workspacePermissions.includes(p));
55
- const exportSubPermissions = onlyGranularPermissions.includes("EXPORT")
56
- ? ["EXPORT_PDF", "EXPORT_TABULAR"]
57
- : [];
58
62
  return [
59
- ...new Set([...implicitGranularPermissions, ...onlyGranularPermissions, ...exportSubPermissions]),
63
+ ...new Set([
64
+ ...implicitGranularPermissions,
65
+ ...onlyGranularPermissions,
66
+ ...includedBy(onlyGranularPermissions),
67
+ ]),
60
68
  ];
61
69
  };
62
70
  /**
@@ -109,8 +117,8 @@ export const isPermissionDisabled = (permission, selectedWorkspacePermission, se
109
117
  const isManageWithNoAi = selectedWorkspacePermission === "MANAGE" && permission !== "USE_AI_ASSISTANT";
110
118
  const isAnalyzeWithImpliedPermission = selectedWorkspacePermission === "ANALYZE" &&
111
119
  (permission === "CREATE_FILTER_VIEW" || permission === "CREATE_VISUALIZATION");
112
- const isExportSubPermission = selectedGranularPermissions.includes("EXPORT") && exportSubPermissions.includes(permission);
113
- return isManageWithNoAi || isAnalyzeWithImpliedPermission || isExportSubPermission;
120
+ const isIncluded = includedBy(selectedGranularPermissions).includes(permission);
121
+ return isManageWithNoAi || isAnalyzeWithImpliedPermission || isIncluded;
114
122
  };
115
123
  /**
116
124
  * Before persisting permissions, we want to remove implicit permissions as they are not needed on BE.
@@ -132,23 +140,20 @@ export const removeRedundantPermissions = (permissions) => {
132
140
  sanitizedPermissions = sanitizedPermissions.filter((p) => p !== "CREATE_FILTER_VIEW");
133
141
  sanitizedPermissions = sanitizedPermissions.filter((p) => p !== "CREATE_VISUALIZATION");
134
142
  }
135
- if (permissions.includes("EXPORT")) {
136
- sanitizedPermissions = sanitizedPermissions.filter((p) => p !== "EXPORT_PDF");
137
- sanitizedPermissions = sanitizedPermissions.filter((p) => p !== "EXPORT_TABULAR");
138
- }
139
- return sanitizedPermissions;
143
+ const included = includedBy(permissions);
144
+ return sanitizedPermissions.filter((p) => !included.includes(p));
140
145
  };
141
146
  /**
142
- * Returns whether two workspaces have the same permissions.
147
+ * Returns whether two workspaces differ in hierarchy or permissions.
143
148
  *
144
- * Remark: possible implicit permissions are not removed here.
149
+ * Remark: compares what a save would store, so implicit permissions do not count.
145
150
  */
146
- export const areWorkspacePermissionsEqual = (workspace1, workspace2) => {
151
+ export const haveWorkspacePermissionsChanged = (workspace1, workspace2) => {
147
152
  if (workspace1 === undefined || workspace2 === undefined) {
148
153
  return false;
149
154
  }
150
155
  return (workspace1.isHierarchical !== workspace2.isHierarchical ||
151
- !isEqual([...workspace1.permissions].sort(), [...workspace2.permissions].sort()));
156
+ !isEqual(removeRedundantPermissions(workspace1.permissions).sort(), removeRedundantPermissions(workspace2.permissions).sort()));
152
157
  };
153
158
  /**
154
159
  * Returns reordered permissions with MANAGE, ANALYZE, or VIEW at the first position in this order.
@@ -162,6 +167,7 @@ const reorderPermissions = (permissions) => {
162
167
  "CREATE_AUTOMATION",
163
168
  "CREATE_METRIC",
164
169
  "CREATE_VISUALIZATION",
170
+ "MANAGE_VISUALIZATIONS",
165
171
  "CREATE_COMPUTED_ATTRIBUTE",
166
172
  "EXPORT",
167
173
  "EXPORT_PDF",
@@ -67,6 +67,9 @@ export declare const workspaceGranularPermissionMessages: {
67
67
  CREATE_VISUALIZATION: {
68
68
  id: string;
69
69
  };
70
+ MANAGE_VISUALIZATIONS: {
71
+ id: string;
72
+ };
70
73
  CREATE_COMPUTED_ATTRIBUTE: {
71
74
  id: string;
72
75
  };
@@ -120,6 +123,9 @@ export declare const granularTooltipMessages: {
120
123
  CREATE_VISUALIZATION: {
121
124
  id: string;
122
125
  };
126
+ MANAGE_VISUALIZATIONS: {
127
+ id: string;
128
+ };
123
129
  CREATE_COMPUTED_ATTRIBUTE: {
124
130
  id: string;
125
131
  };
@@ -1 +1 @@
1
- {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/locales.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAErF,eAAO,MAAM,8BAA8B;;QAC5B,EAAE;;;QACD,EAAE;;CAChB,CAAC;AAEH,eAAO,MAAM,2BAA2B;;QAC5B,EAAE;;;QACa,EAAE;;;QACN,EAAE;;;QACa,EAAE;;;QACzB,EAAE;;;QACS,EAAE;;;QACd,EAAE;;;QACF,EAAE;;CACd,CAAC;AAEH,eAAO,MAAM,kBAAkB,eAAgB,mBAAmB;;CAmBjE,CAAC;AAEF,eAAO,MAAM,mCAAmC;;QAClC,EAAE;;;QACD,EAAE;;;QACL,EAAE;;;QACA,EAAE;;;QACM,EAAE;;;QACN,EAAE;;;QACM,EAAE;;;QACH,EAAE;;;QACN,EAAE;;;QACK,EAAE;;;QACG,EAAE;;;QACX,EAAE;;;QACH,EAAE;;;QACC,EAAE;;;QACH,EAAE;;;QACH,EAAE;;;QACZ,EAAE;;;QACL,EAAE;;;QACa,EAAE;;;QACE,EAAE;;CAC9B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;QACtB,EAAE;;;QACM,EAAE;;;QACN,EAAE;;;QACM,EAAE;;;QACH,EAAE;;;QACN,EAAE;;;QACK,EAAE;;;QAEtB,EAAE;;;QAEc,EAAE;;CACxB,CAAC;AAEH,eAAO,MAAM,0BAA0B,eAAgB,mBAAmB;;CA6BzE,CAAC;AAEF,eAAO,MAAM,gCAAgC,gBAAiB,oBAAoB;;CAQjF,CAAC;AAEF,eAAO,MAAM,uCAAuC,eAAgB,mBAAmB;;CAWtF,CAAC"}
1
+ {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/locales.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAErF,eAAO,MAAM,8BAA8B;;QAC5B,EAAE;;;QACD,EAAE;;CAChB,CAAC;AAEH,eAAO,MAAM,2BAA2B;;QAC5B,EAAE;;;QACa,EAAE;;;QACN,EAAE;;;QACa,EAAE;;;QACzB,EAAE;;;QACS,EAAE;;;QACd,EAAE;;;QACF,EAAE;;CACd,CAAC;AAEH,eAAO,MAAM,kBAAkB,eAAgB,mBAAmB;;CAmBjE,CAAC;AAEF,eAAO,MAAM,mCAAmC;;QAClC,EAAE;;;QACD,EAAE;;;QACL,EAAE;;;QACA,EAAE;;;QACM,EAAE;;;QACN,EAAE;;;QACM,EAAE;;;QACH,EAAE;;;QACN,EAAE;;;QACK,EAAE;;;QACD,EAAE;;;QACE,EAAE;;;QACX,EAAE;;;QACH,EAAE;;;QACC,EAAE;;;QACH,EAAE;;;QACH,EAAE;;;QACZ,EAAE;;;QACL,EAAE;;;QACa,EAAE;;;QACE,EAAE;;CAC9B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;QACtB,EAAE;;;QACM,EAAE;;;QACN,EAAE;;;QACM,EAAE;;;QACH,EAAE;;;QACN,EAAE;;;QACK,EAAE;;;QACD,EAAE;;;QAEvB,EAAE;;;QAEc,EAAE;;CACxB,CAAC;AAEH,eAAO,MAAM,0BAA0B,eAAgB,mBAAmB;;CA+BzE,CAAC;AAEF,eAAO,MAAM,gCAAgC,gBAAiB,oBAAoB;;CAQjF,CAAC;AAEF,eAAO,MAAM,uCAAuC,eAAgB,mBAAmB;;CAWtF,CAAC"}
@@ -45,6 +45,7 @@ export const workspaceGranularPermissionMessages = defineMessages({
45
45
  CREATE_AUTOMATION: { id: "userManagement.workspace.permission.createAutomation" },
46
46
  CREATE_METRIC: { id: "userManagement.workspace.permission.createMetric" },
47
47
  CREATE_VISUALIZATION: { id: "userManagement.workspace.permission.createVisualization" },
48
+ MANAGE_VISUALIZATIONS: { id: "userManagement.workspace.permission.manageVisualizations" },
48
49
  CREATE_COMPUTED_ATTRIBUTE: { id: "userManagement.workspace.permission.createComputedAttribute" },
49
50
  USE_AI_ASSISTANT: { id: "userManagement.workspace.permission.useAiAssistant" },
50
51
  viewDescription: { id: "userManagement.workspace.granularPermission.view.description" },
@@ -64,6 +65,7 @@ export const granularTooltipMessages = defineMessages({
64
65
  CREATE_AUTOMATION: { id: "userManagement.workspace.permission.createAutomation.tooltip" },
65
66
  CREATE_METRIC: { id: "userManagement.workspace.permission.createMetric.tooltip" },
66
67
  CREATE_VISUALIZATION: { id: "userManagement.workspace.permission.createVisualization.tooltip" },
68
+ MANAGE_VISUALIZATIONS: { id: "userManagement.workspace.permission.manageVisualizations.tooltip" },
67
69
  CREATE_COMPUTED_ATTRIBUTE: {
68
70
  id: "userManagement.workspace.permission.createComputedAttribute.tooltip",
69
71
  },
@@ -91,6 +93,8 @@ export const getGranularPermissionTitle = (permission) => {
91
93
  return workspaceGranularPermissionMessages.CREATE_METRIC;
92
94
  case "CREATE_VISUALIZATION":
93
95
  return workspaceGranularPermissionMessages.CREATE_VISUALIZATION;
96
+ case "MANAGE_VISUALIZATIONS":
97
+ return workspaceGranularPermissionMessages.MANAGE_VISUALIZATIONS;
94
98
  case "CREATE_COMPUTED_ATTRIBUTE":
95
99
  return workspaceGranularPermissionMessages.CREATE_COMPUTED_ATTRIBUTE;
96
100
  case "USE_AI_ASSISTANT":
@@ -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;AAOtE,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGtF,eAAO,MAAM,eAAe,QACnB,MAAM,EAAE,eACA,0BAA0B,YAC7B,CAAC,UAAU,EAAE,iBAAiB,EAAE,KAAK,IAAI,YACzC,MAAM,IAAI,kBACJ,iBAAiB;;0BAWJ,iBAAiB;0BAIjB,iBAAiB;8BAsDb,oBAAoB;uCAIX,oBAAoB;;;CAajE,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;AAOtE,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;;0BAWJ,iBAAiB;0BAIjB,iBAAiB;8BA4Db,oBAAoB;uCAIX,oBAAoB;;;CAajE,CAAC"}
@@ -1,4 +1,4 @@
1
- // (C) 2023-2025 GoodData Corporation
1
+ // (C) 2023-2026 GoodData Corporation
2
2
  import { useState } from "react";
3
3
  import { useBackendStrict } from "@gooddata/sdk-ui";
4
4
  import { useToastMessage } from "@gooddata/sdk-ui-kit";
@@ -6,6 +6,7 @@ import { messages } from "../locales.js";
6
6
  import { useOrganizationId } from "../OrganizationIdContext.js";
7
7
  import { useTelemetry } from "../TelemetryContext.js";
8
8
  import { grantedWorkspaceAsPermissionAssignment, sortByName } from "../utils.js";
9
+ import { removeRedundantPermissions } from "./WorkspaceItem/granularPermissionUtils.js";
9
10
  export const useAddWorkspace = (ids, subjectType, onSubmit, onCancel, editWorkspace) => {
10
11
  const { addSuccess, addError } = useToastMessage();
11
12
  const backend = useBackendStrict();
@@ -22,12 +23,18 @@ export const useAddWorkspace = (ids, subjectType, onSubmit, onCancel, editWorksp
22
23
  };
23
24
  const onAdd = () => {
24
25
  setIsProcessing(true);
26
+ // The draft keeps redundant entries; clean them here, not in the shared conversion, which
27
+ // revokes also use and which must name the stored redundant levels.
28
+ const savedWorkspaces = addedWorkspaces.map((w) => ({
29
+ ...w,
30
+ permissions: removeRedundantPermissions(w.permissions),
31
+ }));
25
32
  backend
26
33
  .organization(organizationId)
27
34
  .permissions()
28
35
  .assignPermissions({
29
36
  assignees: ids.map((id) => ({ id, type: subjectType })),
30
- workspaces: addedWorkspaces.map((w) => grantedWorkspaceAsPermissionAssignment(w)),
37
+ workspaces: savedWorkspaces.map((w) => grantedWorkspaceAsPermissionAssignment(w)),
31
38
  })
32
39
  .then(() => {
33
40
  if (ids.length === 1) {
@@ -44,7 +51,7 @@ export const useAddWorkspace = (ids, subjectType, onSubmit, onCancel, editWorksp
44
51
  ? "permission-added-to-multiple-users"
45
52
  : "permission-added-to-multiple-groups");
46
53
  }
47
- onSubmit(addedWorkspaces);
54
+ onSubmit(savedWorkspaces);
48
55
  onCancel();
49
56
  })
50
57
  .catch((error) => {
@@ -1 +1 @@
1
- {"version":3,"file":"chartCodeGenUtils.d.ts","sourceRoot":"","sources":["../../../../src/internal/components/pluggableVisualizations/chartCodeGenUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACH,KAAK,kBAAkB,EAM1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EACH,KAAK,wBAAwB,EAEhC,MAAM,yEAAyE,CAAC;AACjF,OAAO,EACH,KAAK,4BAA4B,EAEpC,MAAM,6CAA6C,CAAC;AA2CrD,wBAAgB,sBAAsB,CAClC,OAAO,EAAE,kBAAkB,EAC3B,GAAG,CAAC,EAAE,qBAAqB,GAC5B,YAAY,CA6Bd;AAED,wBAAgB,8BAA8B,CAC1C,OAAO,EAAE,kBAAkB,EAC3B,IAAI,CAAC,EAAE,qBAAqB,GAC7B,eAAe,GAAG,SAAS,CAkB7B;AAED,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE;IAC/C,+BAA+B,CAAC,EAAE,MAAM,CAAC;CAC5C,GAAG,4BAA4B,EAAE,CA0BjC;AAWD,wBAAgB,4BAA4B,CAAC,MAAM,SAAS,MAAM,EAAE,QAAQ,SAAS,MAAM,MAAM,EAC7F,QAAQ,EAAE,QAAQ,GACnB,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,CAE1D;AAWD,wBAAgB,oCAAoC,CAAC,MAAM,SAAS,MAAM,EAAE,QAAQ,SAAS,MAAM,MAAM,EACrG,QAAQ,EAAE,QAAQ,GACnB,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,SAAS,CAAC,CAEzE"}
1
+ {"version":3,"file":"chartCodeGenUtils.d.ts","sourceRoot":"","sources":["../../../../src/internal/components/pluggableVisualizations/chartCodeGenUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACH,KAAK,kBAAkB,EAM1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EACH,KAAK,wBAAwB,EAEhC,MAAM,yEAAyE,CAAC;AACjF,OAAO,EACH,KAAK,4BAA4B,EAEpC,MAAM,6CAA6C,CAAC;AA4CrD,wBAAgB,sBAAsB,CAClC,OAAO,EAAE,kBAAkB,EAC3B,GAAG,CAAC,EAAE,qBAAqB,GAC5B,YAAY,CA6Bd;AAED,wBAAgB,8BAA8B,CAC1C,OAAO,EAAE,kBAAkB,EAC3B,IAAI,CAAC,EAAE,qBAAqB,GAC7B,eAAe,GAAG,SAAS,CAkB7B;AAED,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE;IAC/C,+BAA+B,CAAC,EAAE,MAAM,CAAC;CAC5C,GAAG,4BAA4B,EAAE,CA0BjC;AAWD,wBAAgB,4BAA4B,CAAC,MAAM,SAAS,MAAM,EAAE,QAAQ,SAAS,MAAM,MAAM,EAC7F,QAAQ,EAAE,QAAQ,GACnB,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,CAE1D;AAWD,wBAAgB,oCAAoC,CAAC,MAAM,SAAS,MAAM,EAAE,QAAQ,SAAS,MAAM,MAAM,EACrG,QAAQ,EAAE,QAAQ,GACnB,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,SAAS,CAAC,CAEzE"}
@@ -40,6 +40,7 @@ const supportedChartConfigProperties = new Set([
40
40
  "hyperLinks",
41
41
  "thresholdMeasures",
42
42
  "customTooltip",
43
+ "lineStyleMapping",
43
44
  ]);
44
45
  export function chartConfigFromInsight(insight, ctx) {
45
46
  const properties = insightProperties(insight);
@@ -508,7 +508,8 @@ export declare const de_DE: {
508
508
  "automations.menu.ariaLabel": string;
509
509
  "automations.menu.edit.unavailable": string;
510
510
  "automations.menu.edit.restricted": string;
511
- "automations.restricted.tooltip": string;
511
+ "automations.restricted.tooltip.alert": string;
512
+ "automations.restricted.tooltip.schedule": string;
512
513
  "automations.icon.tooltip.header.schedule": string;
513
514
  "automations.icon.tooltip.header.alert": string;
514
515
  "automations.icon.tooltip.status": string;
@@ -631,6 +632,8 @@ export declare const de_DE: {
631
632
  "objectShare.selfRestrict.title": string;
632
633
  "objectShare.selfRestrict.warning": string;
633
634
  "objectShare.workspaceLevel.inherited": string;
635
+ "objectShare.grantee.aboveCaller.user": string;
636
+ "objectShare.grantee.aboveCaller.group": string;
634
637
  "objectShare.granteeRemove.inherited": string;
635
638
  "objectShare.granteeLevel.inheritedCovered": string;
636
639
  "objectShare.grantee.you": string;
@@ -643,6 +646,8 @@ export declare const de_DE: {
643
646
  "objectShare.title.insight": string;
644
647
  "objectShare.title.other": string;
645
648
  "objectShare.adminNote": string;
649
+ "objectShare.visualizationManagerNote": string;
650
+ "objectShare.grantee.coveredByWorkspacePermission": string;
646
651
  "objectShare.emptyGrantees": string;
647
652
  "objectShare.emptyGrantees.hint": string;
648
653
  "objectShare.toast.granteeAdded": string;
@@ -1 +1 @@
1
- {"version":3,"file":"de-DE.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/internal/translations/de-DE.localization-bundle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"de-DE.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/internal/translations/de-DE.localization-bundle.ts"],"names":[],"mappings":"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"}