chore: model access control
This commit is contained in:
@@ -65,6 +65,11 @@ export const rowActionList = [
|
|||||||
label: 'common.button.edit',
|
label: 'common.button.edit',
|
||||||
icon: icons.EditOutlined
|
icon: icons.EditOutlined
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: 'models.button.accessSettings',
|
||||||
|
key: 'accessControl',
|
||||||
|
icon: icons.Permission
|
||||||
|
},
|
||||||
{
|
{
|
||||||
key: 'delete',
|
key: 'delete',
|
||||||
label: 'common.button.delete',
|
label: 'common.button.delete',
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
import { PageAction } from '@/config';
|
||||||
|
import { PageActionType } from '@/config/types';
|
||||||
|
import { useState } from 'react';
|
||||||
|
import { AccessItem as ListItem } from '../config/types';
|
||||||
|
|
||||||
|
const useAccessControl = () => {
|
||||||
|
const [openModalStatus, setOpenModalStatus] = useState<{
|
||||||
|
open: boolean;
|
||||||
|
action: PageActionType;
|
||||||
|
currentData?: ListItem;
|
||||||
|
title: string;
|
||||||
|
}>({
|
||||||
|
open: false,
|
||||||
|
action: PageAction.CREATE,
|
||||||
|
currentData: undefined,
|
||||||
|
title: ''
|
||||||
|
});
|
||||||
|
|
||||||
|
const openModal = (
|
||||||
|
action: PageActionType,
|
||||||
|
title: string,
|
||||||
|
currentData?: ListItem
|
||||||
|
) => {
|
||||||
|
setOpenModalStatus({
|
||||||
|
open: true,
|
||||||
|
action,
|
||||||
|
currentData,
|
||||||
|
title: title
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const closeModal = () => {
|
||||||
|
setOpenModalStatus({
|
||||||
|
open: false,
|
||||||
|
action: PageAction.CREATE,
|
||||||
|
currentData: undefined,
|
||||||
|
title: ''
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
openAccessControlModalStatus: openModalStatus,
|
||||||
|
setOpenAccessControlModalStatus: setOpenModalStatus,
|
||||||
|
openAccessControlModal: openModal,
|
||||||
|
closeAccessControlModal: closeModal
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export default useAccessControl;
|
||||||
@@ -17,6 +17,7 @@ import { useAtom } from 'jotai';
|
|||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import NoResult from '../_components/no-result';
|
import NoResult from '../_components/no-result';
|
||||||
import PageBox from '../_components/page-box';
|
import PageBox from '../_components/page-box';
|
||||||
|
import AccessControlModal from '../llmodels/components/access-control-modal';
|
||||||
import {
|
import {
|
||||||
ACCESS_API,
|
ACCESS_API,
|
||||||
ACCESS_POINTS_API,
|
ACCESS_POINTS_API,
|
||||||
@@ -30,6 +31,7 @@ import { maasProviderOptions } from './config';
|
|||||||
import { mockDataList } from './config/mock';
|
import { mockDataList } from './config/mock';
|
||||||
import { FormData, AccessItem as ListItem } from './config/types';
|
import { FormData, AccessItem as ListItem } from './config/types';
|
||||||
import useAccessColumns from './hooks/use-access-columns';
|
import useAccessColumns from './hooks/use-access-columns';
|
||||||
|
import useAccessControl from './hooks/use-access-control';
|
||||||
import useCreateAccess from './hooks/use-create-access';
|
import useCreateAccess from './hooks/use-create-access';
|
||||||
|
|
||||||
const Accesses: React.FC = () => {
|
const Accesses: React.FC = () => {
|
||||||
@@ -59,6 +61,11 @@ const Accesses: React.FC = () => {
|
|||||||
const intl = useIntl();
|
const intl = useIntl();
|
||||||
const { openAccessModalStatus, openAccessModal, closeAccessModal } =
|
const { openAccessModalStatus, openAccessModal, closeAccessModal } =
|
||||||
useCreateAccess();
|
useCreateAccess();
|
||||||
|
const {
|
||||||
|
openAccessControlModal,
|
||||||
|
closeAccessControlModal,
|
||||||
|
openAccessControlModalStatus
|
||||||
|
} = useAccessControl();
|
||||||
|
|
||||||
const handleClickDropdown = () => {
|
const handleClickDropdown = () => {
|
||||||
openAccessModal(
|
openAccessModal(
|
||||||
@@ -105,6 +112,12 @@ const Accesses: React.FC = () => {
|
|||||||
handleEditProvider(row);
|
handleEditProvider(row);
|
||||||
} else if (val === 'delete') {
|
} else if (val === 'delete') {
|
||||||
handleDelete({ ...row, name: row.name });
|
handleDelete({ ...row, name: row.name });
|
||||||
|
} else if (val === 'accessControl') {
|
||||||
|
openAccessControlModal(
|
||||||
|
PageAction.EDIT,
|
||||||
|
intl.formatMessage({ id: 'models.button.accessSettings' }),
|
||||||
|
row
|
||||||
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -239,6 +252,13 @@ const Accesses: React.FC = () => {
|
|||||||
onCancel={handleModalCancel}
|
onCancel={handleModalCancel}
|
||||||
onOk={handleModalOk}
|
onOk={handleModalOk}
|
||||||
></AddAccessModal>
|
></AddAccessModal>
|
||||||
|
<AccessControlModal
|
||||||
|
onCancel={closeAccessControlModal}
|
||||||
|
title={openAccessControlModalStatus.title}
|
||||||
|
open={openAccessControlModalStatus.open}
|
||||||
|
currentData={openAccessControlModalStatus.currentData || null}
|
||||||
|
action={openAccessControlModalStatus.action}
|
||||||
|
></AccessControlModal>
|
||||||
<DeleteModal ref={modalRef}></DeleteModal>
|
<DeleteModal ref={modalRef}></DeleteModal>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user