mirror of
https://github.com/labring/FastGPT.git
synced 2025-07-24 22:03:54 +00:00
dataset inheritance permission (#2151)
* refactor: dataset create and update api * chore: defaultpermission & resume fe * refactor: database auth * fix(ts): add inheritPermission into default data types * chore: adjust the code * fix: list api type filter * fix: query condition
This commit is contained in:
@@ -5,7 +5,6 @@ import PageContainer from '@/components/PageContainer';
|
||||
import { useTranslation } from 'next-i18next';
|
||||
import { serviceSideProps } from '@/web/common/utils/i18n';
|
||||
import ParentPaths from '@/components/common/folder/Path';
|
||||
import { useDatasetStore } from '@/web/core/dataset/store/dataset';
|
||||
import List from './component/List';
|
||||
import { DatasetsContext } from './context';
|
||||
import DatasetContextProvider from './context';
|
||||
@@ -14,13 +13,11 @@ import MyMenu from '@fastgpt/web/components/common/MyMenu';
|
||||
import { AddIcon } from '@chakra-ui/icons';
|
||||
import { useUserStore } from '@/web/support/user/useUserStore';
|
||||
import MyIcon from '@fastgpt/web/components/common/Icon';
|
||||
import { FolderIcon, FolderImgUrl } from '@fastgpt/global/common/file/image/constants';
|
||||
import { FolderIcon } from '@fastgpt/global/common/file/image/constants';
|
||||
import { EditFolderFormType } from '@fastgpt/web/components/common/MyModal/EditFolderModal';
|
||||
import dynamic from 'next/dynamic';
|
||||
import { postCreateDataset, putDatasetById } from '@/web/core/dataset/api';
|
||||
import { DatasetTypeEnum } from '@fastgpt/global/core/dataset/constants';
|
||||
import { postCreateDatasetFolder, resumeInheritPer } from '@/web/core/dataset/api';
|
||||
import FolderSlideCard from '@/components/common/folder/SlideCard';
|
||||
import { useSystemStore } from '@/web/common/system/useSystemStore';
|
||||
import {
|
||||
DatasetDefaultPermissionVal,
|
||||
DatasetPermissionList
|
||||
@@ -44,17 +41,18 @@ const Dataset = () => {
|
||||
const router = useRouter();
|
||||
const { parentId } = router.query as { parentId: string };
|
||||
|
||||
const { myDatasets } = useDatasetStore();
|
||||
|
||||
const {
|
||||
myDatasets,
|
||||
paths,
|
||||
isFetchingDatasets,
|
||||
refetchPaths,
|
||||
refetchDatasets,
|
||||
loadMyDatasets,
|
||||
refetchFolderDetail,
|
||||
folderDetail,
|
||||
setEditedDataset,
|
||||
setMoveDatasetId,
|
||||
onDelDataset
|
||||
onDelDataset,
|
||||
onUpdateDataset
|
||||
} = useContextSelector(DatasetsContext, (v) => v);
|
||||
const { userInfo } = useUserStore();
|
||||
|
||||
@@ -139,7 +137,11 @@ const Dataset = () => {
|
||||
{!!folderDetail && isPc && (
|
||||
<Box ml="6">
|
||||
<FolderSlideCard
|
||||
refreshDeps={[folderDetail._id]}
|
||||
resumeInheritPermission={() => resumeInheritPer(folderDetail._id)}
|
||||
isInheritPermission={folderDetail.inheritPermission}
|
||||
hasParent={!!folderDetail.parentId}
|
||||
refetchResource={() => Promise.all([refetchFolderDetail(), loadMyDatasets()])}
|
||||
refreshDeps={[folderDetail._id, folderDetail.inheritPermission]}
|
||||
name={folderDetail.name}
|
||||
intro={folderDetail.intro}
|
||||
onEdit={() => {
|
||||
@@ -165,7 +167,7 @@ const Dataset = () => {
|
||||
value: folderDetail.defaultPermission,
|
||||
defaultValue: DatasetDefaultPermissionVal,
|
||||
onChange: (e) => {
|
||||
return putDatasetById({
|
||||
return onUpdateDataset({
|
||||
id: folderDetail._id,
|
||||
defaultPermission: e
|
||||
});
|
||||
@@ -192,7 +194,8 @@ const Dataset = () => {
|
||||
deleteDatasetCollaborators({
|
||||
datasetId: folderDetail._id,
|
||||
tmbId
|
||||
})
|
||||
}),
|
||||
refreshDeps: [folderDetail._id, folderDetail.inheritPermission]
|
||||
}}
|
||||
/>
|
||||
</Box>
|
||||
@@ -202,16 +205,14 @@ const Dataset = () => {
|
||||
{!!editFolderData && (
|
||||
<EditFolderModal
|
||||
onClose={() => setEditFolderData(undefined)}
|
||||
onCreate={async ({ name }) => {
|
||||
onCreate={async ({ name, intro }) => {
|
||||
try {
|
||||
await postCreateDataset({
|
||||
await postCreateDatasetFolder({
|
||||
parentId: parentId || undefined,
|
||||
name,
|
||||
type: DatasetTypeEnum.folder,
|
||||
avatar: FolderImgUrl,
|
||||
intro: ''
|
||||
intro: intro ?? ''
|
||||
});
|
||||
refetchDatasets();
|
||||
loadMyDatasets();
|
||||
refetchPaths();
|
||||
} catch (error) {
|
||||
return Promise.reject(error);
|
||||
@@ -219,13 +220,11 @@ const Dataset = () => {
|
||||
}}
|
||||
onEdit={async ({ name, intro, id }) => {
|
||||
try {
|
||||
await putDatasetById({
|
||||
await onUpdateDataset({
|
||||
id,
|
||||
name,
|
||||
intro
|
||||
});
|
||||
refetchDatasets();
|
||||
refetchPaths();
|
||||
} catch (error) {
|
||||
return Promise.reject(error);
|
||||
}
|
||||
|
Reference in New Issue
Block a user