ydb-embedded-ui 9.6.3 → 9.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/MetricChart/reducer.d.ts +2 -2
- package/dist/components/PaginatedTable/utils.d.ts +0 -1
- package/dist/components/PaginatedTable/utils.js +0 -1
- package/dist/components/PaginatedTable/utils.js.map +1 -1
- package/dist/components/SubjectWithAvatar/SubjectWithAvatar.d.ts +9 -0
- package/dist/components/SubjectWithAvatar/SubjectWithAvatar.js +9 -0
- package/dist/components/SubjectWithAvatar/SubjectWithAvatar.js.map +1 -0
- package/dist/components/SubjectWithAvatar/SubjectWithAvatar.scss +11 -0
- package/dist/components/TableWithControlsLayout/useTableScroll.d.ts +0 -2
- package/dist/components/TableWithControlsLayout/useTableScroll.js +0 -4
- package/dist/components/TableWithControlsLayout/useTableScroll.js.map +1 -1
- package/dist/components/nodesColumns/constants.js +1 -1
- package/dist/components/nodesColumns/constants.js.map +1 -1
- package/dist/containers/Authentication/Authentication.scss +2 -5
- package/dist/containers/Clusters/columns.js +4 -2
- package/dist/containers/Clusters/columns.js.map +1 -1
- package/dist/containers/Nodes/getNodes.d.ts +1 -1
- package/dist/containers/Nodes/getNodes.js +1 -2
- package/dist/containers/Nodes/getNodes.js.map +1 -1
- package/dist/containers/Tenant/Acl/Acl.d.ts +1 -5
- package/dist/containers/Tenant/Acl/Acl.js +11 -133
- package/dist/containers/Tenant/Acl/Acl.js.map +1 -1
- package/dist/containers/Tenant/Acl/i18n/en.json +2 -5
- package/dist/containers/Tenant/Acl/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/AccessRights/AccessRights.d.ts +2 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/AccessRights.js +35 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/AccessRights.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/AccessRights.scss +80 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/components/ChangeOwnerDialog.d.ts +6 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/components/ChangeOwnerDialog.js +58 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/components/ChangeOwnerDialog.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/components/Owner.d.ts +1 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/components/Owner.js +24 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/components/Owner.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/Actions.d.ts +7 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/Actions.js +41 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/Actions.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/RevokeAllRightsDialog.d.ts +12 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/RevokeAllRightsDialog.js +69 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/RevokeAllRightsDialog.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/RightsTable.d.ts +1 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/RightsTable.js +17 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/RightsTable.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/columns.d.ts +3 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/columns.js +44 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/columns.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/i18n/en.json +22 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/i18n/index.d.ts +2 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/i18n/index.js +5 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/i18n/index.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/shared.d.ts +1 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/shared.js +3 -0
- package/dist/containers/Tenant/Diagnostics/AccessRights/shared.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/Diagnostics.d.ts +0 -5
- package/dist/containers/Tenant/Diagnostics/Diagnostics.js +20 -9
- package/dist/containers/Tenant/Diagnostics/Diagnostics.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.d.ts +1 -0
- package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js +24 -11
- package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckPreview.js +2 -21
- package/dist/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckPreview.js.map +1 -1
- package/dist/containers/Tenant/GrantAccess/GrantAccess.d.ts +6 -0
- package/dist/containers/Tenant/GrantAccess/GrantAccess.js +99 -0
- package/dist/containers/Tenant/GrantAccess/GrantAccess.js.map +1 -0
- package/dist/containers/Tenant/GrantAccess/GrantAccess.scss +44 -0
- package/dist/containers/Tenant/GrantAccess/components/Footer.d.ts +10 -0
- package/dist/containers/Tenant/GrantAccess/components/Footer.js +9 -0
- package/dist/containers/Tenant/GrantAccess/components/Footer.js.map +1 -0
- package/dist/containers/Tenant/GrantAccess/components/Rights.d.ts +8 -0
- package/dist/containers/Tenant/GrantAccess/components/Rights.js +36 -0
- package/dist/containers/Tenant/GrantAccess/components/Rights.js.map +1 -0
- package/dist/containers/Tenant/GrantAccess/components/RightsSectionSelector.d.ts +10 -0
- package/dist/containers/Tenant/GrantAccess/components/RightsSectionSelector.js +16 -0
- package/dist/containers/Tenant/GrantAccess/components/RightsSectionSelector.js.map +1 -0
- package/dist/containers/Tenant/GrantAccess/components/SubjectInput.d.ts +7 -0
- package/dist/containers/Tenant/GrantAccess/components/SubjectInput.js +47 -0
- package/dist/containers/Tenant/GrantAccess/components/SubjectInput.js.map +1 -0
- package/dist/containers/Tenant/GrantAccess/i18n/en.json +36 -0
- package/dist/containers/Tenant/GrantAccess/i18n/index.d.ts +2 -0
- package/dist/containers/Tenant/GrantAccess/i18n/index.js +5 -0
- package/dist/containers/Tenant/GrantAccess/i18n/index.js.map +1 -0
- package/dist/containers/Tenant/GrantAccess/shared.d.ts +10 -0
- package/dist/containers/Tenant/GrantAccess/shared.js +57 -0
- package/dist/containers/Tenant/GrantAccess/shared.js.map +1 -0
- package/dist/containers/Tenant/GrantAccess/utils.d.ts +14 -0
- package/dist/containers/Tenant/GrantAccess/utils.js +44 -0
- package/dist/containers/Tenant/GrantAccess/utils.js.map +1 -0
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/utils.js +1 -2
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/utils.js.map +1 -1
- package/dist/containers/Tenant/ObjectGeneral/ObjectGeneral.d.ts +0 -5
- package/dist/containers/Tenant/ObjectGeneral/ObjectGeneral.js +3 -3
- package/dist/containers/Tenant/ObjectGeneral/ObjectGeneral.js.map +1 -1
- package/dist/containers/Tenant/ObjectSummary/ObjectSummary.d.ts +1 -6
- package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js +4 -2
- package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js.map +1 -1
- package/dist/containers/Tenant/Query/Query.d.ts +0 -5
- package/dist/containers/Tenant/Query/Query.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.d.ts +0 -5
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js +8 -2
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js.map +1 -1
- package/dist/containers/Tenant/Query/QuerySettingsDialog/TimeoutLabel.js +5 -1
- package/dist/containers/Tenant/Query/QuerySettingsDialog/TimeoutLabel.js.map +1 -1
- package/dist/containers/Tenant/Tenant.js +3 -1
- package/dist/containers/Tenant/Tenant.js.map +1 -1
- package/dist/containers/Tenant/TenantContext.d.ts +18 -0
- package/dist/containers/Tenant/TenantContext.js +20 -0
- package/dist/containers/Tenant/TenantContext.js.map +1 -0
- package/dist/containers/Tenant/TenantDrawerHealthcheck.d.ts +6 -0
- package/dist/containers/Tenant/TenantDrawerHealthcheck.js +48 -0
- package/dist/containers/Tenant/TenantDrawerHealthcheck.js.map +1 -0
- package/dist/containers/Tenant/TenantDrawerRights.d.ts +6 -0
- package/dist/containers/Tenant/TenantDrawerRights.js +27 -0
- package/dist/containers/Tenant/TenantDrawerRights.js.map +1 -0
- package/dist/containers/Tenant/TenantDrawerWrappers.d.ts +1 -2
- package/dist/containers/Tenant/TenantDrawerWrappers.js +5 -44
- package/dist/containers/Tenant/TenantDrawerWrappers.js.map +1 -1
- package/dist/containers/Tenant/i18n/en.json +3 -1
- package/dist/containers/Tenant/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/useTenantQueryParams.d.ts +4 -0
- package/dist/containers/Tenant/useTenantQueryParams.js +20 -2
- package/dist/containers/Tenant/useTenantQueryParams.js.map +1 -1
- package/dist/services/api/streaming.js +1 -1
- package/dist/services/api/streaming.js.map +1 -1
- package/dist/services/api/viewer.d.ts +10 -1
- package/dist/services/api/viewer.js +21 -2
- package/dist/services/api/viewer.js.map +1 -1
- package/dist/store/configureStore.d.ts +4 -4
- package/dist/store/defaultStore.d.ts +2 -2
- package/dist/store/reducers/api.d.ts +1 -1
- package/dist/store/reducers/api.js +1 -0
- package/dist/store/reducers/api.js.map +1 -1
- package/dist/store/reducers/authentication/authentication.d.ts +4 -4
- package/dist/store/reducers/cancelQuery.d.ts +2 -2
- package/dist/store/reducers/capabilities/capabilities.d.ts +31 -31
- package/dist/store/reducers/capabilities/hooks.d.ts +1 -0
- package/dist/store/reducers/capabilities/hooks.js +3 -0
- package/dist/store/reducers/capabilities/hooks.js.map +1 -1
- package/dist/store/reducers/cluster/cluster.d.ts +5 -5
- package/dist/store/reducers/cluster/cluster.js +1 -1
- package/dist/store/reducers/cluster/cluster.js.map +1 -1
- package/dist/store/reducers/clusters/clusters.d.ts +2 -2
- package/dist/store/reducers/codeAssist/codeAssist.d.ts +6 -6
- package/dist/store/reducers/executeTopQueries/executeTopQueries.d.ts +3 -3
- package/dist/store/reducers/healthcheckInfo/healthcheckInfo.d.ts +44 -44
- package/dist/store/reducers/heatmap.d.ts +2 -2
- package/dist/store/reducers/hotKeys/hotKeys.d.ts +2 -2
- package/dist/store/reducers/index.d.ts +3 -3
- package/dist/store/reducers/network/network.d.ts +2 -2
- package/dist/store/reducers/node/node.d.ts +3 -3
- package/dist/store/reducers/node/selectors.d.ts +1 -1
- package/dist/store/reducers/nodes/nodes.d.ts +2 -2
- package/dist/store/reducers/nodesList.d.ts +3 -3
- package/dist/store/reducers/operations.d.ts +4 -4
- package/dist/store/reducers/overview/overview.d.ts +2 -2
- package/dist/store/reducers/partitions/partitions.d.ts +2 -2
- package/dist/store/reducers/pdisk/pdisk.d.ts +2 -2
- package/dist/store/reducers/planToSvg.d.ts +2 -2
- package/dist/store/reducers/preview.d.ts +2 -2
- package/dist/store/reducers/query/query.d.ts +3 -3
- package/dist/store/reducers/replication.d.ts +2 -2
- package/dist/store/reducers/schema/schema.d.ts +16 -16
- package/dist/store/reducers/schemaAcl/schemaAcl.d.ts +1519 -2
- package/dist/store/reducers/schemaAcl/schemaAcl.js +107 -1
- package/dist/store/reducers/schemaAcl/schemaAcl.js.map +1 -1
- package/dist/store/reducers/shardsWorkload/shardsWorkload.d.ts +2 -2
- package/dist/store/reducers/storage/storage.d.ts +3 -3
- package/dist/store/reducers/tableData.d.ts +1 -1
- package/dist/store/reducers/tableSchemaData.d.ts +2 -2
- package/dist/store/reducers/tablet.d.ts +7 -7
- package/dist/store/reducers/tablets.d.ts +3 -3
- package/dist/store/reducers/tenant/constants.d.ts +2 -0
- package/dist/store/reducers/tenant/constants.js +2 -0
- package/dist/store/reducers/tenant/constants.js.map +1 -1
- package/dist/store/reducers/tenant/tenant.d.ts +3 -3
- package/dist/store/reducers/tenantOverview/executeTopTables/executeTopTables.d.ts +2 -2
- package/dist/store/reducers/tenantOverview/topShards/tenantOverviewTopShards.d.ts +2 -2
- package/dist/store/reducers/tenants/selectors.d.ts +21 -21
- package/dist/store/reducers/tenants/tenants.d.ts +2 -2
- package/dist/store/reducers/topic.d.ts +45 -45
- package/dist/store/reducers/vdisk/vdisk.d.ts +2 -2
- package/dist/store/reducers/viewSchema/viewSchema.d.ts +2 -2
- package/dist/styles/index.scss +5 -3
- package/dist/types/api/acl.d.ts +35 -0
- package/dist/types/api/capabilities.d.ts +1 -1
- package/dist/types/api/consumer.d.ts +2 -1
- package/dist/types/api/consumer.js +0 -1
- package/dist/types/api/consumer.js.map +1 -1
- package/dist/types/api/replication.js +0 -1
- package/dist/types/api/replication.js.map +1 -1
- package/dist/types/api/schema/schema.js.map +1 -1
- package/dist/types/api/topic.js +0 -1
- package/dist/types/api/topic.js.map +1 -1
- package/dist/uiFactory/types.d.ts +5 -0
- package/dist/utils/createToast.js +4 -4
- package/dist/utils/createToast.js.map +1 -1
- package/dist/utils/hooks/useDisableOidcStreaming.d.ts +5 -0
- package/dist/utils/hooks/useDisableOidcStreaming.js +10 -0
- package/dist/utils/hooks/useDisableOidcStreaming.js.map +1 -0
- package/dist/utils/hooks/useQueryExecutionSettings.js +5 -1
- package/dist/utils/hooks/useQueryExecutionSettings.js.map +1 -1
- package/dist/utils/registerError.js +0 -1
- package/dist/utils/registerError.js.map +1 -1
- package/package.json +10 -7
- package/dist/containers/Tenant/Acl/Acl.scss +0 -27
@@ -0,0 +1,58 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import React from 'react';
|
3
|
+
import NiceModal from '@ebay/nice-modal-react';
|
4
|
+
import { Dialog, Text, TextInput } from '@gravity-ui/uikit';
|
5
|
+
import { schemaAclApi } from '../../../../../store/reducers/schemaAcl/schemaAcl';
|
6
|
+
import createToast from '../../../../../utils/createToast';
|
7
|
+
import { prepareErrorMessage } from '../../../../../utils/prepareErrorMessage';
|
8
|
+
import i18n from '../i18n';
|
9
|
+
import { block } from '../shared';
|
10
|
+
const CHANGE_OWNER_DIALOG = 'change-owner-dialog';
|
11
|
+
export async function getChangeOwnerDialog({ path, database, }) {
|
12
|
+
return await NiceModal.show(CHANGE_OWNER_DIALOG, {
|
13
|
+
id: CHANGE_OWNER_DIALOG,
|
14
|
+
path,
|
15
|
+
database,
|
16
|
+
});
|
17
|
+
}
|
18
|
+
const ChangeOwnerDialogNiceModal = NiceModal.create(({ path, database }) => {
|
19
|
+
const modal = NiceModal.useModal();
|
20
|
+
const handleClose = () => {
|
21
|
+
modal.hide();
|
22
|
+
modal.remove();
|
23
|
+
};
|
24
|
+
return (_jsx(ChangeOwnerDialog, { onClose: () => {
|
25
|
+
modal.resolve(false);
|
26
|
+
handleClose();
|
27
|
+
}, open: modal.visible, path: path, database: database }));
|
28
|
+
});
|
29
|
+
NiceModal.register(CHANGE_OWNER_DIALOG, ChangeOwnerDialogNiceModal);
|
30
|
+
function ChangeOwnerDialog({ open, onClose, path, database }) {
|
31
|
+
const [newOwner, setNewOwner] = React.useState('');
|
32
|
+
const [requestErrorMessage, setRequestErrorMessage] = React.useState('');
|
33
|
+
const [updateOwner, updateOwnerResponse] = schemaAclApi.useUpdateAccessMutation();
|
34
|
+
const handleTyping = (value) => {
|
35
|
+
setNewOwner(value);
|
36
|
+
setRequestErrorMessage('');
|
37
|
+
};
|
38
|
+
const onApply = () => {
|
39
|
+
updateOwner({ path, database, rights: { ChangeOwnership: { Subject: newOwner } } })
|
40
|
+
.unwrap()
|
41
|
+
.then(() => {
|
42
|
+
onClose();
|
43
|
+
createToast({
|
44
|
+
name: 'updateOwner',
|
45
|
+
content: i18n('title_owner-changed'),
|
46
|
+
autoHiding: 3000,
|
47
|
+
});
|
48
|
+
})
|
49
|
+
.catch((error) => {
|
50
|
+
setRequestErrorMessage(prepareErrorMessage(error));
|
51
|
+
});
|
52
|
+
};
|
53
|
+
return (_jsxs(Dialog, { open: open, size: "s", onClose: onClose, onEnterKeyDown: onApply, children: [_jsx(Dialog.Header, { caption: i18n('action_change-owner') }), _jsx(Dialog.Body, { children: _jsxs("div", { className: block('dialog-content-wrapper'), children: [_jsx(TextInput, { id: "queryName", placeholder: i18n('decription_enter-subject'), value: newOwner, onUpdate: handleTyping, hasClear: true, autoFocus: true, autoComplete: false }), requestErrorMessage && (_jsx(Text, { color: "danger", className: block('dialog-error'), title: requestErrorMessage, children: requestErrorMessage }))] }) }), _jsx(Dialog.Footer, { onClickButtonApply: onApply, textButtonCancel: i18n('action_cancel'), textButtonApply: i18n('action_apply'), onClickButtonCancel: onClose, propsButtonApply: {
|
54
|
+
loading: updateOwnerResponse.isLoading,
|
55
|
+
disabled: !newOwner.length,
|
56
|
+
} })] }));
|
57
|
+
}
|
58
|
+
//# sourceMappingURL=ChangeOwnerDialog.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ChangeOwnerDialog.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/AccessRights/components/ChangeOwnerDialog.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare function Owner(): import("react/jsx-runtime").JSX.Element | null;
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import { CrownDiamond, Pencil } from '@gravity-ui/icons';
|
3
|
+
import { ActionTooltip, Button, Card, Divider, Flex, Icon, Text } from '@gravity-ui/uikit';
|
4
|
+
import { SubjectWithAvatar } from '../../../../../components/SubjectWithAvatar/SubjectWithAvatar';
|
5
|
+
import { useEditAccessAvailable } from '../../../../../store/reducers/capabilities/hooks';
|
6
|
+
import { selectSchemaOwner } from '../../../../../store/reducers/schemaAcl/schemaAcl';
|
7
|
+
import { useTypedSelector } from '../../../../../utils/hooks';
|
8
|
+
import { useCurrentSchema } from '../../../TenantContext';
|
9
|
+
import i18n from '../i18n';
|
10
|
+
import { block } from '../shared';
|
11
|
+
import { getChangeOwnerDialog } from './ChangeOwnerDialog';
|
12
|
+
export function Owner() {
|
13
|
+
const editable = useEditAccessAvailable();
|
14
|
+
const { path, database } = useCurrentSchema();
|
15
|
+
const owner = useTypedSelector((state) => selectSchemaOwner(state, path, database));
|
16
|
+
if (!owner) {
|
17
|
+
return null;
|
18
|
+
}
|
19
|
+
const renderIcon = () => {
|
20
|
+
return (_jsx(Flex, { alignItems: "center", justifyContent: "center", className: block('icon-wrapper'), children: _jsx(Icon, { data: CrownDiamond, size: 14, className: block('avatar-icon') }) }));
|
21
|
+
};
|
22
|
+
return (_jsxs(Flex, { gap: 4, alignItems: "center", children: [_jsx(Card, { view: "filled", className: block('owner-card'), children: _jsxs(Flex, { alignItems: "center", justifyContent: "space-between", gap: 9, children: [_jsx(SubjectWithAvatar, { subject: owner, renderIcon: renderIcon, title: i18n('title_owner') }), editable && (_jsxs(Flex, { gap: 1, alignItems: "center", children: [_jsx(Divider, { className: block('owner-divider'), orientation: "vertical" }), _jsx(ActionTooltip, { title: i18n('action_change-owner'), children: _jsx(Button, { view: "flat-secondary", onClick: () => getChangeOwnerDialog({ path, database }), children: _jsx(Icon, { data: Pencil }) }) })] }))] }) }), _jsx(Text, { color: "secondary", className: block('owner-description'), children: i18n('description_owner') })] }));
|
23
|
+
}
|
24
|
+
//# sourceMappingURL=Owner.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Owner.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/AccessRights/components/Owner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,YAAY,EAAE,MAAM,EAAC,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAEzF,OAAO,EAAC,iBAAiB,EAAC,MAAM,+DAA+D,CAAC;AAChG,OAAO,EAAC,sBAAsB,EAAC,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAC,iBAAiB,EAAC,MAAM,mDAAmD,CAAC;AACpF,OAAO,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AACxD,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAC,KAAK,EAAC,MAAM,WAAW,CAAC;AAEhC,OAAO,EAAC,oBAAoB,EAAC,MAAM,qBAAqB,CAAC;AAEzD,MAAM,UAAU,KAAK;IACjB,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC;IAC1C,MAAM,EAAC,IAAI,EAAE,QAAQ,EAAC,GAAG,gBAAgB,EAAE,CAAC;IAC5C,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEpF,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,OAAO,CACH,KAAC,IAAI,IAAC,UAAU,EAAC,QAAQ,EAAC,cAAc,EAAC,QAAQ,EAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,YAC9E,KAAC,IAAI,IAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,GAAI,GACpE,CACV,CAAC;IACN,CAAC,CAAC;IACF,OAAO,CACH,MAAC,IAAI,IAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,aAC7B,KAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,YAC9C,MAAC,IAAI,IAAC,UAAU,EAAC,QAAQ,EAAC,cAAc,EAAC,eAAe,EAAC,GAAG,EAAE,CAAC,aAC3D,KAAC,iBAAiB,IACd,OAAO,EAAE,KAAK,EACd,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,GAC5B,EACD,QAAQ,IAAI,CACT,MAAC,IAAI,IAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,aAC7B,KAAC,OAAO,IAAC,SAAS,EAAE,KAAK,CAAC,eAAe,CAAC,EAAE,WAAW,EAAC,UAAU,GAAG,EACrE,KAAC,aAAa,IAAC,KAAK,EAAE,IAAI,CAAC,qBAAqB,CAAC,YAC7C,KAAC,MAAM,IACH,IAAI,EAAC,gBAAgB,EACrB,OAAO,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,YAErD,KAAC,IAAI,IAAC,IAAI,EAAE,MAAM,GAAI,GACjB,GACG,IACb,CACV,IACE,GACJ,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,WAAW,EAAC,SAAS,EAAE,KAAK,CAAC,mBAAmB,CAAC,YACxD,IAAI,CAAC,mBAAmB,CAAC,GACvB,IACJ,CACV,CAAC;AACN,CAAC"}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import { CircleXmark, Pencil } from '@gravity-ui/icons';
|
3
|
+
import { ActionTooltip, Button, Flex, Icon } from '@gravity-ui/uikit';
|
4
|
+
import { useEditAccessAvailable } from '../../../../../../store/reducers/capabilities/hooks';
|
5
|
+
import { selectSubjectExplicitRights } from '../../../../../../store/reducers/schemaAcl/schemaAcl';
|
6
|
+
import { useTypedSelector } from '../../../../../../utils/hooks';
|
7
|
+
import { useCurrentSchema } from '../../../../TenantContext';
|
8
|
+
import { useTenantQueryParams } from '../../../../useTenantQueryParams';
|
9
|
+
import i18n from '../../i18n';
|
10
|
+
import { block } from '../../shared';
|
11
|
+
import { getRevokeAllRightsDialog } from './RevokeAllRightsDialog';
|
12
|
+
export function Actions() {
|
13
|
+
return null;
|
14
|
+
}
|
15
|
+
export function SubjectActions({ subject, className }) {
|
16
|
+
const editable = useEditAccessAvailable();
|
17
|
+
if (!editable) {
|
18
|
+
return null;
|
19
|
+
}
|
20
|
+
return (_jsxs(Flex, { gap: 1, className: className, alignItems: "center", children: [_jsx(GrantRightsToSubject, { subject: subject }), _jsx(RevokeAllRights, { subject: subject })] }));
|
21
|
+
}
|
22
|
+
function GrantRightsToSubject({ subject }) {
|
23
|
+
const { handleShowGrantAccessChange, handleAclSubjectChange } = useTenantQueryParams();
|
24
|
+
const handleClick = () => {
|
25
|
+
handleShowGrantAccessChange(true);
|
26
|
+
handleAclSubjectChange(subject);
|
27
|
+
};
|
28
|
+
return (_jsx(ActionTooltip, { title: i18n('description_grant-explicit-rights'), children: _jsx(Button, { view: "outlined", onClick: handleClick, size: "s", children: _jsx(Icon, { data: Pencil }) }) }));
|
29
|
+
}
|
30
|
+
function RevokeAllRights({ subject }) {
|
31
|
+
const { path, database } = useCurrentSchema();
|
32
|
+
const subjectExplicitRights = useTypedSelector((state) => selectSubjectExplicitRights(state, subject, path, database));
|
33
|
+
const noRightsToRevoke = subjectExplicitRights.length === 0;
|
34
|
+
const handleClick = async () => {
|
35
|
+
await getRevokeAllRightsDialog({ path, database, subject });
|
36
|
+
};
|
37
|
+
return (_jsx(ActionTooltip, { title: noRightsToRevoke
|
38
|
+
? i18n('descripition_no-rights-to-revoke')
|
39
|
+
: i18n('label_revoke-all-rights'), children: _jsx("div", { className: block('button-wrapper'), children: _jsx(Button, { onClick: handleClick, disabled: noRightsToRevoke, view: "outlined", size: "s", children: _jsx(Icon, { data: CircleXmark }) }) }) }));
|
40
|
+
}
|
41
|
+
//# sourceMappingURL=Actions.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Actions.js","sourceRoot":"","sources":["../../../../../../../src/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/Actions.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,WAAW,EAAE,MAAM,EAAC,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAEpE,OAAO,EAAC,sBAAsB,EAAC,MAAM,qDAAqD,CAAC;AAC3F,OAAO,EAAC,2BAA2B,EAAC,MAAM,sDAAsD,CAAC;AACjG,OAAO,EAAC,gBAAgB,EAAC,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,oBAAoB,EAAC,MAAM,kCAAkC,CAAC;AACtE,OAAO,IAAI,MAAM,YAAY,CAAC;AAC9B,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAC,wBAAwB,EAAC,MAAM,yBAAyB,CAAC;AACjE,MAAM,UAAU,OAAO;IACnB,OAAO,IAAI,CAAC;AAChB,CAAC;AAOD,MAAM,UAAU,cAAc,CAAC,EAAC,OAAO,EAAE,SAAS,EAAc;IAC5D,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC;IAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CACH,MAAC,IAAI,IAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAC,QAAQ,aACnD,KAAC,oBAAoB,IAAC,OAAO,EAAE,OAAO,GAAI,EAC1C,KAAC,eAAe,IAAC,OAAO,EAAE,OAAO,GAAI,IAClC,CACV,CAAC;AACN,CAAC;AAED,SAAS,oBAAoB,CAAC,EAAC,OAAO,EAAc;IAChD,MAAM,EAAC,2BAA2B,EAAE,sBAAsB,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACrF,MAAM,WAAW,GAAG,GAAG,EAAE;QACrB,2BAA2B,CAAC,IAAI,CAAC,CAAC;QAClC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC;IACF,OAAO,CACH,KAAC,aAAa,IAAC,KAAK,EAAE,IAAI,CAAC,mCAAmC,CAAC,YAC3D,KAAC,MAAM,IAAC,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAC,GAAG,YAClD,KAAC,IAAI,IAAC,IAAI,EAAE,MAAM,GAAI,GACjB,GACG,CACnB,CAAC;AACN,CAAC;AAED,SAAS,eAAe,CAAC,EAAC,OAAO,EAAc;IAC3C,MAAM,EAAC,IAAI,EAAE,QAAQ,EAAC,GAAG,gBAAgB,EAAE,CAAC;IAC5C,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CACrD,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAC9D,CAAC;IACF,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,MAAM,KAAK,CAAC,CAAC;IAE5D,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;QAC3B,MAAM,wBAAwB,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;IAEF,OAAO,CACH,KAAC,aAAa,IACV,KAAK,EACD,gBAAgB;YACZ,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC;YAC1C,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,YAIzC,cAAK,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,YACnC,KAAC,MAAM,IAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAC,UAAU,EAAC,IAAI,EAAC,GAAG,YAC9E,KAAC,IAAI,IAAC,IAAI,EAAE,WAAW,GAAI,GACtB,GACP,GACM,CACnB,CAAC;AACN,CAAC"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
interface GetRevokeAllRightsDialogProps {
|
2
|
+
path: string;
|
3
|
+
database: string;
|
4
|
+
subject: string;
|
5
|
+
}
|
6
|
+
export declare function getRevokeAllRightsDialog({ path, database, subject, }: GetRevokeAllRightsDialogProps): Promise<boolean>;
|
7
|
+
interface RevokeAllRightsDialogProps extends GetRevokeAllRightsDialogProps {
|
8
|
+
open: boolean;
|
9
|
+
onClose: () => void;
|
10
|
+
}
|
11
|
+
declare function RevokeAllRightsDialog({ open, onClose, path, database, subject, }: RevokeAllRightsDialogProps): import("react/jsx-runtime").JSX.Element;
|
12
|
+
export default RevokeAllRightsDialog;
|
@@ -0,0 +1,69 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import React from 'react';
|
3
|
+
import NiceModal from '@ebay/nice-modal-react';
|
4
|
+
import { Dialog, Flex, Text } from '@gravity-ui/uikit';
|
5
|
+
import { SubjectWithAvatar } from '../../../../../../components/SubjectWithAvatar/SubjectWithAvatar';
|
6
|
+
import { schemaAclApi, selectSubjectExplicitRights, } from '../../../../../../store/reducers/schemaAcl/schemaAcl';
|
7
|
+
import createToast from '../../../../../../utils/createToast';
|
8
|
+
import { useTypedSelector } from '../../../../../../utils/hooks';
|
9
|
+
import { prepareErrorMessage } from '../../../../../../utils/prepareErrorMessage';
|
10
|
+
import i18n from '../../i18n';
|
11
|
+
const REVOKE_ALL_RIGHTS_DIALOG = 'revoke-all-rights-dialog';
|
12
|
+
export async function getRevokeAllRightsDialog({ path, database, subject, }) {
|
13
|
+
return await NiceModal.show(REVOKE_ALL_RIGHTS_DIALOG, {
|
14
|
+
id: REVOKE_ALL_RIGHTS_DIALOG,
|
15
|
+
path,
|
16
|
+
database,
|
17
|
+
subject,
|
18
|
+
});
|
19
|
+
}
|
20
|
+
const RevokeAllRightsDialogNiceModal = NiceModal.create(({ path, database, subject }) => {
|
21
|
+
const modal = NiceModal.useModal();
|
22
|
+
const handleClose = () => {
|
23
|
+
modal.hide();
|
24
|
+
modal.remove();
|
25
|
+
};
|
26
|
+
return (_jsx(RevokeAllRightsDialog, { onClose: () => {
|
27
|
+
modal.resolve(false);
|
28
|
+
handleClose();
|
29
|
+
}, open: modal.visible, path: path, database: database, subject: subject }));
|
30
|
+
});
|
31
|
+
NiceModal.register(REVOKE_ALL_RIGHTS_DIALOG, RevokeAllRightsDialogNiceModal);
|
32
|
+
function RevokeAllRightsDialog({ open, onClose, path, database, subject, }) {
|
33
|
+
const subjectExplicitRights = useTypedSelector((state) => selectSubjectExplicitRights(state, subject, path, database));
|
34
|
+
const [requestErrorMessage, setRequestErrorMessage] = React.useState('');
|
35
|
+
const [removeAccess, removeAccessResponse] = schemaAclApi.useUpdateAccessMutation();
|
36
|
+
const onApply = () => {
|
37
|
+
removeAccess({
|
38
|
+
path,
|
39
|
+
database,
|
40
|
+
rights: {
|
41
|
+
RemoveAccess: [
|
42
|
+
{
|
43
|
+
Subject: subject,
|
44
|
+
AccessRights: Array.from(subjectExplicitRights),
|
45
|
+
AccessType: 'Allow',
|
46
|
+
},
|
47
|
+
],
|
48
|
+
},
|
49
|
+
})
|
50
|
+
.unwrap()
|
51
|
+
.then(() => {
|
52
|
+
onClose();
|
53
|
+
createToast({
|
54
|
+
name: 'revokeAllRights',
|
55
|
+
content: i18n('description_rights-revoked'),
|
56
|
+
autoHiding: 3000,
|
57
|
+
});
|
58
|
+
})
|
59
|
+
.catch((error) => {
|
60
|
+
setRequestErrorMessage(prepareErrorMessage(error));
|
61
|
+
});
|
62
|
+
};
|
63
|
+
return (_jsxs(Dialog, { open: open, size: "s", onClose: onClose, children: [_jsx(Dialog.Header, { caption: i18n('label_revoke-all-rights') }), _jsx(Dialog.Body, { children: _jsxs(Flex, { direction: "column", gap: 5, children: [_jsx(Text, { variant: "body-2", children: i18n('description_revoke-all-rights') }), _jsx(SubjectWithAvatar, { subject: subject })] }) }), _jsx(Dialog.Footer, { onClickButtonApply: onApply, textButtonCancel: i18n('action_cancel'), textButtonApply: i18n('action_revoke'), onClickButtonCancel: onClose, propsButtonApply: {
|
64
|
+
loading: removeAccessResponse.isLoading,
|
65
|
+
view: 'outlined-danger',
|
66
|
+
}, children: requestErrorMessage && (_jsx(Text, { color: "danger", title: requestErrorMessage, children: requestErrorMessage })) })] }));
|
67
|
+
}
|
68
|
+
export default RevokeAllRightsDialog;
|
69
|
+
//# sourceMappingURL=RevokeAllRightsDialog.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"RevokeAllRightsDialog.js","sourceRoot":"","sources":["../../../../../../../src/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/RevokeAllRightsDialog.tsx"],"names":[],"mappings":"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"}
|
package/dist/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/RightsTable.d.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
export declare function RightsTable(): import("react/jsx-runtime").JSX.Element;
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import { ResizeableDataTable } from '../../../../../../components/ResizeableDataTable/ResizeableDataTable';
|
3
|
+
import { selectPreparedRights } from '../../../../../../store/reducers/schemaAcl/schemaAcl';
|
4
|
+
import { DEFAULT_TABLE_SETTINGS } from '../../../../../../utils/constants';
|
5
|
+
import { useTypedSelector } from '../../../../../../utils/hooks';
|
6
|
+
import { useCurrentSchema } from '../../../../TenantContext';
|
7
|
+
import i18n from '../../i18n';
|
8
|
+
import { block } from '../../shared';
|
9
|
+
import { columns } from './columns';
|
10
|
+
const RIGHT_TABLE_COLUMNS_WIDTH_LS_KEY = 'right-table-columns-width';
|
11
|
+
const AccessRightsTableSettings = { ...DEFAULT_TABLE_SETTINGS, dynamicRender: false };
|
12
|
+
export function RightsTable() {
|
13
|
+
const { path, database } = useCurrentSchema();
|
14
|
+
const data = useTypedSelector((state) => selectPreparedRights(state, path, database));
|
15
|
+
return (_jsx(ResizeableDataTable, { columnsWidthLSKey: RIGHT_TABLE_COLUMNS_WIDTH_LS_KEY, columns: columns, data: data !== null && data !== void 0 ? data : [], settings: AccessRightsTableSettings, emptyDataMessage: i18n('descrtiption_empty-rights'), wrapperClassName: block('rights-table') }));
|
16
|
+
}
|
17
|
+
//# sourceMappingURL=RightsTable.js.map
|
package/dist/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/RightsTable.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"RightsTable.js","sourceRoot":"","sources":["../../../../../../../src/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/RightsTable.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,mBAAmB,EAAC,MAAM,sEAAsE,CAAC;AACzG,OAAO,EAAC,oBAAoB,EAAC,MAAM,sDAAsD,CAAC;AAC1F,OAAO,EAAC,sBAAsB,EAAC,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAC,gBAAgB,EAAC,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,IAAI,MAAM,YAAY,CAAC;AAC9B,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAElC,MAAM,gCAAgC,GAAG,2BAA2B,CAAC;AAErE,MAAM,yBAAyB,GAAa,EAAC,GAAG,sBAAsB,EAAE,aAAa,EAAE,KAAK,EAAC,CAAC;AAE9F,MAAM,UAAU,WAAW;IACvB,MAAM,EAAC,IAAI,EAAE,QAAQ,EAAC,GAAG,gBAAgB,EAAE,CAAC;IAC5C,MAAM,IAAI,GAAG,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IACtF,OAAO,CACH,KAAC,mBAAmB,IAChB,iBAAiB,EAAE,gCAAgC,EACnD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,EAChB,QAAQ,EAAE,yBAAyB,EACnC,gBAAgB,EAAE,IAAI,CAAC,2BAA2B,CAAC,EACnD,gBAAgB,EAAE,KAAK,CAAC,cAAc,CAAC,GACzC,CACL,CAAC;AACN,CAAC"}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import { Flex, HelpMark, Label } from '@gravity-ui/uikit';
|
3
|
+
import { SubjectWithAvatar } from '../../../../../../components/SubjectWithAvatar/SubjectWithAvatar';
|
4
|
+
import i18n from '../../i18n';
|
5
|
+
import { block } from '../../shared';
|
6
|
+
import { SubjectActions } from './Actions';
|
7
|
+
export const columns = [
|
8
|
+
{
|
9
|
+
name: 'subject',
|
10
|
+
width: 210,
|
11
|
+
get header() {
|
12
|
+
return i18n('label_subject');
|
13
|
+
},
|
14
|
+
render: ({ row: { subject } }) => {
|
15
|
+
return _jsx(SubjectWithAvatar, { subject: subject });
|
16
|
+
},
|
17
|
+
},
|
18
|
+
{
|
19
|
+
name: 'explicit',
|
20
|
+
width: 400,
|
21
|
+
get header() {
|
22
|
+
return (_jsx(HeaderWithHelpMark, { header: i18n('label_explicit-rights'), note: i18n('description_explicit-rights') }));
|
23
|
+
},
|
24
|
+
render: ({ row: { subject, explicit } }) => {
|
25
|
+
return (_jsxs(Flex, { justifyContent: "space-between", alignItems: "center", className: block('rights-wrapper'), children: [_jsx(Flex, { gap: 2, wrap: "wrap", children: explicit.map((right) => (_jsx(Label, { theme: "normal", size: "xs", children: right }, right))) }), _jsx(SubjectActions, { subject: subject, className: block('rights-actions') })] }));
|
26
|
+
},
|
27
|
+
sortable: false,
|
28
|
+
},
|
29
|
+
{
|
30
|
+
name: 'effective',
|
31
|
+
width: 400,
|
32
|
+
get header() {
|
33
|
+
return (_jsx(HeaderWithHelpMark, { header: i18n('label_effective-rights'), note: i18n('description_effective-rights') }));
|
34
|
+
},
|
35
|
+
render: ({ row: { effective } }) => {
|
36
|
+
return (_jsx(Flex, { gap: 2, wrap: "wrap", children: effective.map((right) => (_jsx(Label, { theme: "unknown", size: "xs", children: right }, right))) }));
|
37
|
+
},
|
38
|
+
sortable: false,
|
39
|
+
},
|
40
|
+
];
|
41
|
+
function HeaderWithHelpMark({ header, note }) {
|
42
|
+
return (_jsxs(Flex, { gap: 1, alignItems: "center", children: [header, _jsx(HelpMark, { className: block('note'), children: note })] }));
|
43
|
+
}
|
44
|
+
//# sourceMappingURL=columns.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../../../../../../src/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/columns.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAC,iBAAiB,EAAC,MAAM,kEAAkE,CAAC;AAEnG,OAAO,IAAI,MAAM,YAAY,CAAC;AAC9B,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAC,cAAc,EAAC,MAAM,WAAW,CAAC;AAEzC,MAAM,CAAC,MAAM,OAAO,GAAmC;IACnD;QACI,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,GAAG;QACV,IAAI,MAAM;YACN,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,EAAE,CAAC,EAAC,GAAG,EAAE,EAAC,OAAO,EAAC,EAAC,EAAE,EAAE;YACzB,OAAO,KAAC,iBAAiB,IAAC,OAAO,EAAE,OAAO,GAAI,CAAC;QACnD,CAAC;KACJ;IACD;QACI,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,GAAG;QACV,IAAI,MAAM;YACN,OAAO,CACH,KAAC,kBAAkB,IACf,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,EACrC,IAAI,EAAE,IAAI,CAAC,6BAA6B,CAAC,GAC3C,CACL,CAAC;QACN,CAAC;QACD,MAAM,EAAE,CAAC,EAAC,GAAG,EAAE,EAAC,OAAO,EAAE,QAAQ,EAAC,EAAC,EAAE,EAAE;YACnC,OAAO,CACH,MAAC,IAAI,IACD,cAAc,EAAC,eAAe,EAC9B,UAAU,EAAC,QAAQ,EACnB,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,aAElC,KAAC,IAAI,IAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAC,MAAM,YACpB,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,KAAC,KAAK,IAAC,KAAK,EAAC,QAAQ,EAAa,IAAI,EAAC,IAAI,YACtC,KAAK,IADiB,KAAK,CAExB,CACX,CAAC,GACC,EACP,KAAC,cAAc,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAI,IACrE,CACV,CAAC;QACN,CAAC;QACD,QAAQ,EAAE,KAAK;KAClB;IACD;QACI,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,GAAG;QACV,IAAI,MAAM;YACN,OAAO,CACH,KAAC,kBAAkB,IACf,MAAM,EAAE,IAAI,CAAC,wBAAwB,CAAC,EACtC,IAAI,EAAE,IAAI,CAAC,8BAA8B,CAAC,GAC5C,CACL,CAAC;QACN,CAAC;QACD,MAAM,EAAE,CAAC,EAAC,GAAG,EAAE,EAAC,SAAS,EAAC,EAAC,EAAE,EAAE;YAC3B,OAAO,CACH,KAAC,IAAI,IAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAC,MAAM,YACpB,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACtB,KAAC,KAAK,IAAC,KAAK,EAAC,SAAS,EAAa,IAAI,EAAC,IAAI,YACvC,KAAK,IADkB,KAAK,CAEzB,CACX,CAAC,GACC,CACV,CAAC;QACN,CAAC;QACD,QAAQ,EAAE,KAAK;KAClB;CACJ,CAAC;AAOF,SAAS,kBAAkB,CAAC,EAAC,MAAM,EAAE,IAAI,EAA0B;IAC/D,OAAO,CACH,MAAC,IAAI,IAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,aAC5B,MAAM,EACP,KAAC,QAAQ,IAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,YAAG,IAAI,GAAY,IAClD,CACV,CAAC;AACN,CAAC"}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
{
|
2
|
+
"title_owner": "owner",
|
3
|
+
"action_change-owner": "Change owner",
|
4
|
+
"description_owner": "The owner has complete management authority over the object and cannot acquire or lose any rights associated with it.",
|
5
|
+
"action_grant-access": "Grant Access",
|
6
|
+
"label_explicit-rights": "Explicit rights",
|
7
|
+
"label_effective-rights": "Effective rights",
|
8
|
+
"label_subject": "Subject",
|
9
|
+
"descrtiption_empty-rights": "No access rights",
|
10
|
+
"decription_enter-subject": "Enter subject",
|
11
|
+
"action_cancel": "Cancel",
|
12
|
+
"action_apply": "Apply",
|
13
|
+
"title_owner-changed": "Owner has been successfully changed",
|
14
|
+
"description_explicit-rights": "Direct granted permissions",
|
15
|
+
"description_effective-rights": "Total active permissions from inheritance and direct grants",
|
16
|
+
"action_revoke": "Revoke",
|
17
|
+
"label_revoke-all-rights": "Revoke all explicit rights",
|
18
|
+
"descripition_no-rights-to-revoke": "No rights to revoke",
|
19
|
+
"description_grant-explicit-rights": "Grant explicit rights",
|
20
|
+
"description_revoke-all-rights": "Are you sure you want to revoke all explicit rights for:",
|
21
|
+
"description_rights-revoked": "Explicit rights has been successfully revoked"
|
22
|
+
}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
declare const _default: (key: "title_owner" | "action_change-owner" | "description_owner" | "action_grant-access" | "label_explicit-rights" | "label_effective-rights" | "label_subject" | "descrtiption_empty-rights" | "decription_enter-subject" | "action_cancel" | "action_apply" | "title_owner-changed" | "description_explicit-rights" | "description_effective-rights" | "action_revoke" | "label_revoke-all-rights" | "descripition_no-rights-to-revoke" | "description_grant-explicit-rights" | "description_revoke-all-rights" | "description_rights-revoked", params?: import("@gravity-ui/i18n").Params) => string;
|
2
|
+
export default _default;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/AccessRights/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,MAAM,WAAW,CAAC;AAE3B,MAAM,SAAS,GAAG,mBAAmB,CAAC;AAEtC,eAAe,eAAe,CAAC,SAAS,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare const block: import("@bem-react/classname").ClassNameFormatter;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/Diagnostics/AccessRights/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,sBAAsB,CAAC;AAExC,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAC"}
|
@@ -1,11 +1,6 @@
|
|
1
1
|
import type { AdditionalNodesProps, AdditionalTenantsProps } from '../../../types/additionalProps';
|
2
|
-
import type { EPathSubType, EPathType } from '../../../types/api/schema';
|
3
2
|
import './Diagnostics.scss';
|
4
3
|
interface DiagnosticsProps {
|
5
|
-
type?: EPathType;
|
6
|
-
subType?: EPathSubType;
|
7
|
-
tenantName: string;
|
8
|
-
path: string;
|
9
4
|
additionalTenantProps?: AdditionalTenantsProps;
|
10
5
|
additionalNodesProps?: AdditionalNodesProps;
|
11
6
|
}
|
@@ -8,6 +8,7 @@ import { DrawerContextProvider } from '../../../components/Drawer/DrawerContext'
|
|
8
8
|
import { useFeatureFlagsAvailable, useTopicDataAvailable, } from '../../../store/reducers/capabilities/hooks';
|
9
9
|
import { TENANT_DIAGNOSTICS_TABS_IDS } from '../../../store/reducers/tenant/constants';
|
10
10
|
import { setDiagnosticsTab } from '../../../store/reducers/tenant/tenant';
|
11
|
+
import { uiFactory } from '../../../uiFactory/uiFactory';
|
11
12
|
import { cn } from '../../../utils/cn';
|
12
13
|
import { useTypedDispatch, useTypedSelector } from '../../../utils/hooks';
|
13
14
|
import { Heatmap } from '../../Heatmap';
|
@@ -16,7 +17,9 @@ import { Operations } from '../../Operations';
|
|
16
17
|
import { PaginatedStorage } from '../../Storage/PaginatedStorage';
|
17
18
|
import { Tablets } from '../../Tablets/Tablets';
|
18
19
|
import { SchemaViewer } from '../Schema/SchemaViewer/SchemaViewer';
|
20
|
+
import { useCurrentSchema } from '../TenantContext';
|
19
21
|
import { isDatabaseEntityType } from '../utils/schema';
|
22
|
+
import { AccessRights } from './AccessRights/AccessRights';
|
20
23
|
import { Configs } from './Configs/Configs';
|
21
24
|
import { Consumers } from './Consumers';
|
22
25
|
import Describe from './Describe/Describe';
|
@@ -31,17 +34,19 @@ import { TopicData } from './TopicData/TopicData';
|
|
31
34
|
import './Diagnostics.scss';
|
32
35
|
const b = cn('kv-tenant-diagnostics');
|
33
36
|
function Diagnostics(props) {
|
37
|
+
const { path, database, type, subType } = useCurrentSchema();
|
34
38
|
const containerRef = React.useRef(null);
|
35
39
|
const dispatch = useTypedDispatch();
|
36
40
|
const { diagnosticsTab = TENANT_DIAGNOSTICS_TABS_IDS.overview } = useTypedSelector((state) => state.tenant);
|
37
41
|
const getDiagnosticsPageLink = useDiagnosticsPageLinkGetter();
|
38
|
-
const tenantName = isDatabaseEntityType(
|
42
|
+
const tenantName = isDatabaseEntityType(type) ? path : database;
|
39
43
|
const hasFeatureFlags = useFeatureFlagsAvailable();
|
40
44
|
const hasTopicData = useTopicDataAvailable();
|
41
|
-
const pages = getPagesByType(
|
45
|
+
const pages = getPagesByType(type, subType, {
|
42
46
|
hasFeatureFlags,
|
43
47
|
hasTopicData,
|
44
|
-
isTopLevel:
|
48
|
+
isTopLevel: path === database,
|
49
|
+
hasBackups: typeof uiFactory.renderBackups === 'function',
|
45
50
|
});
|
46
51
|
let activeTab = pages.find((el) => el.id === diagnosticsTab);
|
47
52
|
if (!activeTab) {
|
@@ -52,8 +57,9 @@ function Diagnostics(props) {
|
|
52
57
|
dispatch(setDiagnosticsTab(activeTab.id));
|
53
58
|
}
|
54
59
|
}, [activeTab, diagnosticsTab, dispatch]);
|
60
|
+
// eslint-disable-next-line complexity
|
55
61
|
const renderTabContent = () => {
|
56
|
-
|
62
|
+
var _a;
|
57
63
|
switch (activeTab === null || activeTab === void 0 ? void 0 : activeTab.id) {
|
58
64
|
case TENANT_DIAGNOSTICS_TABS_IDS.overview: {
|
59
65
|
return (_jsx(DetailedOverview, { type: type, tenantName: tenantName, path: path, additionalTenantProps: props.additionalTenantProps, additionalNodesProps: props.additionalNodesProps }));
|
@@ -70,6 +76,9 @@ function Diagnostics(props) {
|
|
70
76
|
case TENANT_DIAGNOSTICS_TABS_IDS.nodes: {
|
71
77
|
return (_jsx(Nodes, { path: path, database: tenantName, additionalNodesProps: props.additionalNodesProps, scrollContainerRef: containerRef }));
|
72
78
|
}
|
79
|
+
case TENANT_DIAGNOSTICS_TABS_IDS.access: {
|
80
|
+
return _jsx(AccessRights, {});
|
81
|
+
}
|
73
82
|
case TENANT_DIAGNOSTICS_TABS_IDS.tablets: {
|
74
83
|
return (_jsx(Tablets, { scrollContainerRef: containerRef, path: path, database: tenantName }));
|
75
84
|
}
|
@@ -103,6 +112,12 @@ function Diagnostics(props) {
|
|
103
112
|
case TENANT_DIAGNOSTICS_TABS_IDS.operations: {
|
104
113
|
return _jsx(Operations, { database: tenantName });
|
105
114
|
}
|
115
|
+
case TENANT_DIAGNOSTICS_TABS_IDS.backups: {
|
116
|
+
return (_a = uiFactory.renderBackups) === null || _a === void 0 ? void 0 : _a.call(uiFactory, {
|
117
|
+
database: tenantName,
|
118
|
+
scrollContainerRef: containerRef,
|
119
|
+
});
|
120
|
+
}
|
106
121
|
default: {
|
107
122
|
return _jsx("div", { children: "No data..." });
|
108
123
|
}
|
@@ -112,11 +127,7 @@ function Diagnostics(props) {
|
|
112
127
|
return (_jsx("div", { className: b('header-wrapper'), children: _jsxs("div", { className: b('tabs'), children: [_jsx(Tabs, { size: "l", items: pages, activeTab: activeTab === null || activeTab === void 0 ? void 0 : activeTab.id, wrapTo: ({ id }, node) => {
|
113
128
|
const path = getDiagnosticsPageLink(id);
|
114
129
|
return (_jsx(Link, { to: path, className: b('tab'), children: node }, id));
|
115
|
-
}, allowNotSelected: true }), _jsx(AutoRefreshControl, {
|
116
|
-
//this is needed to collect healthcheck if it is disabled by default https://github.com/ydb-platform/ydb-embedded-ui/issues/1889
|
117
|
-
const event = new CustomEvent('diagnosticsRefresh');
|
118
|
-
document.dispatchEvent(event);
|
119
|
-
} })] }) }));
|
130
|
+
}, allowNotSelected: true }), _jsx(AutoRefreshControl, {})] }) }));
|
120
131
|
};
|
121
132
|
return (_jsxs("div", { className: b(), children: [activeTab ? (_jsx(Helmet, { children: _jsx("title", { children: activeTab.title }) })) : null, renderTabs(), _jsx(DrawerContextProvider, { children: _jsx("div", { className: b('page-wrapper'), ref: containerRef, children: renderTabContent() }) })] }));
|
122
133
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Diagnostics.js","sourceRoot":"","sources":["../../../../src/containers/Tenant/Diagnostics/Diagnostics.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,IAAI,EAAC,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAC;AAEtC,OAAO,EAAC,kBAAkB,EAAC,MAAM,2DAA2D,CAAC;AAC7F,OAAO,EAAC,qBAAqB,EAAC,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EACH,wBAAwB,EACxB,qBAAqB,GACxB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAC,2BAA2B,EAAC,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAC,iBAAiB,EAAC,MAAM,uCAAuC,CAAC;
|
1
|
+
{"version":3,"file":"Diagnostics.js","sourceRoot":"","sources":["../../../../src/containers/Tenant/Diagnostics/Diagnostics.tsx"],"names":[],"mappings":"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"}
|
@@ -9,6 +9,7 @@ export declare const getPagesByType: (type?: EPathType, subType?: EPathSubType,
|
|
9
9
|
hasFeatureFlags?: boolean;
|
10
10
|
hasTopicData?: boolean;
|
11
11
|
isTopLevel?: boolean;
|
12
|
+
hasBackups?: boolean;
|
12
13
|
}) => Page[];
|
13
14
|
export declare const useDiagnosticsPageLinkGetter: () => (tab: string, params?: TenantQuery) => string;
|
14
15
|
export {};
|
@@ -20,6 +20,14 @@ const topShards = {
|
|
20
20
|
id: TENANT_DIAGNOSTICS_TABS_IDS.topShards,
|
21
21
|
title: 'Top shards',
|
22
22
|
};
|
23
|
+
const access = {
|
24
|
+
id: TENANT_DIAGNOSTICS_TABS_IDS.access,
|
25
|
+
title: 'Access',
|
26
|
+
};
|
27
|
+
const backups = {
|
28
|
+
id: TENANT_DIAGNOSTICS_TABS_IDS.backups,
|
29
|
+
title: 'Backups',
|
30
|
+
};
|
23
31
|
const nodes = {
|
24
32
|
id: TENANT_DIAGNOSTICS_TABS_IDS.nodes,
|
25
33
|
title: 'Nodes',
|
@@ -68,8 +76,8 @@ const operations = {
|
|
68
76
|
id: TENANT_DIAGNOSTICS_TABS_IDS.operations,
|
69
77
|
title: 'Operations',
|
70
78
|
};
|
71
|
-
const ASYNC_REPLICATION_PAGES = [overview, tablets, describe];
|
72
|
-
const TRANSFER_PAGES = [overview, tablets, describe];
|
79
|
+
const ASYNC_REPLICATION_PAGES = [overview, tablets, describe, access];
|
80
|
+
const TRANSFER_PAGES = [overview, tablets, describe, access];
|
73
81
|
const DATABASE_PAGES = [
|
74
82
|
overview,
|
75
83
|
topQueries,
|
@@ -80,17 +88,19 @@ const DATABASE_PAGES = [
|
|
80
88
|
network,
|
81
89
|
describe,
|
82
90
|
configs,
|
91
|
+
access,
|
83
92
|
operations,
|
93
|
+
backups,
|
84
94
|
];
|
85
|
-
const TABLE_PAGES = [overview, schema, topShards, nodes, graph, tablets, hotKeys, describe];
|
86
|
-
const COLUMN_TABLE_PAGES = [overview, schema, topShards, nodes, tablets, describe];
|
87
|
-
const DIR_PAGES = [overview, topShards, nodes, describe];
|
88
|
-
const CDC_STREAM_PAGES = [overview, consumers, partitions, nodes, describe];
|
89
|
-
const CDC_STREAM_IMPL_PAGES = [overview, nodes, tablets, describe];
|
90
|
-
const TOPIC_PAGES = [overview, consumers, partitions, topicData, nodes, tablets, describe];
|
91
|
-
const EXTERNAL_DATA_SOURCE_PAGES = [overview, describe];
|
92
|
-
const EXTERNAL_TABLE_PAGES = [overview, schema, describe];
|
93
|
-
const VIEW_PAGES = [overview, schema, describe];
|
95
|
+
const TABLE_PAGES = [overview, schema, topShards, nodes, graph, tablets, hotKeys, describe, access];
|
96
|
+
const COLUMN_TABLE_PAGES = [overview, schema, topShards, nodes, tablets, describe, access];
|
97
|
+
const DIR_PAGES = [overview, topShards, nodes, describe, access];
|
98
|
+
const CDC_STREAM_PAGES = [overview, consumers, partitions, nodes, describe, access];
|
99
|
+
const CDC_STREAM_IMPL_PAGES = [overview, nodes, tablets, describe, access];
|
100
|
+
const TOPIC_PAGES = [overview, consumers, partitions, topicData, nodes, tablets, describe, access];
|
101
|
+
const EXTERNAL_DATA_SOURCE_PAGES = [overview, describe, access];
|
102
|
+
const EXTERNAL_TABLE_PAGES = [overview, schema, describe, access];
|
103
|
+
const VIEW_PAGES = [overview, schema, describe, access];
|
94
104
|
// verbose mapping to guarantee correct tabs for new path types
|
95
105
|
// TS will error when a new type is added but not mapped here
|
96
106
|
const pathTypeToPages = {
|
@@ -130,6 +140,9 @@ export const getPagesByType = (type, subType, options) => {
|
|
130
140
|
return pages.filter((item) => item.id !== TENANT_DIAGNOSTICS_TABS_IDS.configs);
|
131
141
|
}
|
132
142
|
}
|
143
|
+
if (!(options === null || options === void 0 ? void 0 : options.hasBackups)) {
|
144
|
+
return pages.filter((item) => item.id !== TENANT_DIAGNOSTICS_TABS_IDS.backups);
|
145
|
+
}
|
133
146
|
return pages;
|
134
147
|
};
|
135
148
|
export const useDiagnosticsPageLinkGetter = () => {
|