From de59b3d2e5280933fe043c952da4cf7a7c836983 Mon Sep 17 00:00:00 2001 From: Finley Ge <32237950+FinleyGe@users.noreply.github.com> Date: Tue, 10 Sep 2024 13:50:23 +0800 Subject: [PATCH] fix: app select dataset (#2660) --- .../support/permission/dataset/auth.ts | 4 ++- .../src/components/core/app/FileSelect.tsx | 1 - .../src/pages/api/core/dataset/allDataset.ts | 31 ++++++++++++++----- .../detail/components/SimpleApp/EditForm.tsx | 4 +-- 4 files changed, 29 insertions(+), 11 deletions(-) diff --git a/packages/service/support/permission/dataset/auth.ts b/packages/service/support/permission/dataset/auth.ts index 91e41c72e..93235fcdb 100644 --- a/packages/service/support/permission/dataset/auth.ts +++ b/packages/service/support/permission/dataset/auth.ts @@ -90,13 +90,15 @@ export const authDatasetByTmbId = async ({ const { dataset: parent } = await authDatasetByTmbId({ tmbId, datasetId: dataset.parentId, - per + per, + isRoot }); const Per = new DatasetPermission({ per: parent.permission.value, isOwner }); + return { Per, defaultPermission: parent.defaultPermission diff --git a/projects/app/src/components/core/app/FileSelect.tsx b/projects/app/src/components/core/app/FileSelect.tsx index 4ccba4f8c..2da1f25c2 100644 --- a/projects/app/src/components/core/app/FileSelect.tsx +++ b/projects/app/src/components/core/app/FileSelect.tsx @@ -6,7 +6,6 @@ import { Flex, ModalBody, useDisclosure, - Image, HStack, Switch, ModalFooter diff --git a/projects/app/src/pages/api/core/dataset/allDataset.ts b/projects/app/src/pages/api/core/dataset/allDataset.ts index 3304f69e2..f3ac48e33 100644 --- a/projects/app/src/pages/api/core/dataset/allDataset.ts +++ b/projects/app/src/pages/api/core/dataset/allDataset.ts @@ -27,10 +27,7 @@ async function handler(req: NextApiRequest): Promise { const [myDatasets, rpList] = await Promise.all([ MongoDataset.find({ - teamId, - type: { - $ne: DatasetTypeEnum.folder - } + teamId }) .sort({ updateTime: -1 @@ -45,9 +42,29 @@ async function handler(req: NextApiRequest): Promise { const filterDatasets = myDatasets .map((dataset) => { - const perVal = rpList.find( - (item) => String(item.resourceId) === String(dataset._id) - )?.permission; + const perVal = (() => { + const perVal = rpList.find( + (item) => String(item.resourceId) === String(dataset._id) + )?.permission; + if (perVal) { + return perVal; + } + + if (dataset.inheritPermission && dataset.parentId) { + const parentDataset = myDatasets.find( + (item) => String(item._id) === String(dataset.parentId) + ); + if (parentDataset) { + const parentPerVal = + rpList.find((item) => String(item.resourceId) === String(parentDataset._id)) + ?.permission ?? parentDataset.defaultPermission; + if (parentPerVal) { + return parentPerVal; + } + } + } + })(); + const Per = new DatasetPermission({ per: perVal ?? dataset.defaultPermission, isOwner: String(dataset.tmbId) === tmbId || tmbPer.isOwner diff --git a/projects/app/src/pages/app/detail/components/SimpleApp/EditForm.tsx b/projects/app/src/pages/app/detail/components/SimpleApp/EditForm.tsx index c99012993..49afc0b8c 100644 --- a/projects/app/src/pages/app/detail/components/SimpleApp/EditForm.tsx +++ b/projects/app/src/pages/app/detail/components/SimpleApp/EditForm.tsx @@ -10,7 +10,6 @@ import { HStack } from '@chakra-ui/react'; import { SmallAddIcon } from '@chakra-ui/icons'; -import { useSystemStore } from '@/web/common/system/useSystemStore'; import type { AppSimpleEditFormType } from '@fastgpt/global/core/app/type.d'; import { useRouter } from 'next/router'; import { useTranslation } from 'next-i18next'; @@ -79,7 +78,6 @@ const EditForm = ({ const { appDetail } = useContextSelector(AppContext, (v) => v); const { allDatasets } = useDatasetStore(); - const { llmModelList } = useSystemStore(); const [, startTst] = useTransition(); const selectDatasets = useMemo( @@ -506,6 +504,8 @@ const EditForm = ({ ...e } })); + + console.dir(e); }} /> )}