[AURORA-1698] - Справочник ГСК/ГСЗ: пункт «Удалить» виден пользователям без права удаления:
- добавлена проверка наличия права DIRECTORY_DELETE
This commit is contained in:
parent
371c38c17c
commit
2e6e661575
@ -2,5 +2,7 @@
|
||||
// проверки на клиенте только прячут то, что пользователю всё равно не разрешат.
|
||||
export const USERS_ADMIN = 'USERS_ADMIN';
|
||||
export const DIRECTORY_ADMIN = 'DIRECTORY_ADMIN';
|
||||
// Удаление ГСК/ГСЗ
|
||||
export const DIRECTORY_DELETE = 'DIRECTORY_DELETE';
|
||||
// Экран «Качество первички» (метрики качества распознавания).
|
||||
export const QUALITY_METRICS_VIEW = 'QUALITY_METRICS_VIEW';
|
||||
|
||||
@ -1,8 +1,10 @@
|
||||
import { DeleteOutlined, EditOutlined, EllipsisOutlined } from '@ant-design/icons';
|
||||
import { Button, Dropdown, Space } from 'antd';
|
||||
import { Button, Dropdown, type MenuProps, Space } from 'antd';
|
||||
import type { ColumnsType } from 'antd/es/table';
|
||||
import { type ReactNode, useMemo, useState } from 'react';
|
||||
import { ApiError } from '../../../api/client';
|
||||
import { useCurrentUser } from '../../../auth/MeContext';
|
||||
import { DIRECTORY_DELETE } from '../../../auth/permissions';
|
||||
import { ColumnSettings, DataTable, useFilteredRows, useVisibleColumns } from '../../../components/GenericTable';
|
||||
import { useTableFilters } from '../../../components/GenericTable/useTableFilters';
|
||||
import { deleteRelatedGroup, editRelatedGroup } from '../../../services/api/directories/related-groups';
|
||||
@ -23,6 +25,7 @@ interface RelatedGroupTableI {
|
||||
|
||||
export function RelatedGroupTable({ tabsComponent, data, loading, getData, activeTab }: RelatedGroupTableI) {
|
||||
const notification = useNotificationApi();
|
||||
const canDelete = useCurrentUser().permissions.includes(DIRECTORY_DELETE);
|
||||
|
||||
const [editFormOpen, setEditFormOpen] = useState(false);
|
||||
const [deleteModalOpen, setDeleteModalOpen] = useState(false);
|
||||
@ -74,7 +77,7 @@ export function RelatedGroupTable({ tabsComponent, data, loading, getData, activ
|
||||
title: '',
|
||||
width: 30,
|
||||
render: (_: unknown, row: RelatedGroupOut) => {
|
||||
const items = [
|
||||
const items: MenuProps['items'] = [
|
||||
{
|
||||
key: 'edit',
|
||||
icon: <EditOutlined />,
|
||||
@ -84,7 +87,9 @@ export function RelatedGroupTable({ tabsComponent, data, loading, getData, activ
|
||||
setEditFormOpen(true);
|
||||
},
|
||||
},
|
||||
{
|
||||
];
|
||||
if (canDelete) {
|
||||
items.push({
|
||||
key: 'delete',
|
||||
icon: <DeleteOutlined />,
|
||||
label: 'Удалить',
|
||||
@ -93,8 +98,8 @@ export function RelatedGroupTable({ tabsComponent, data, loading, getData, activ
|
||||
setGroupId(row.id);
|
||||
setDeleteModalOpen(true);
|
||||
},
|
||||
},
|
||||
];
|
||||
});
|
||||
}
|
||||
return (
|
||||
<Dropdown menu={{ items }} trigger={['click']}>
|
||||
<Button type='default' style={{ width: '32px' }}>
|
||||
@ -105,7 +110,7 @@ export function RelatedGroupTable({ tabsComponent, data, loading, getData, activ
|
||||
},
|
||||
},
|
||||
],
|
||||
[],
|
||||
[canDelete],
|
||||
);
|
||||
|
||||
return (
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user