Skip to content

Commit bc171db

Browse files
authored
fix: alldataset get dataset without folders. omit the permission check (#3047)
1 parent eb365fe commit bc171db

File tree

1 file changed

+13
-82
lines changed

1 file changed

+13
-82
lines changed

projects/app/src/pages/api/core/dataset/allDataset.ts

Lines changed: 13 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -3,100 +3,31 @@ import { MongoDataset } from '@fastgpt/service/core/dataset/schema';
33
import { getVectorModel } from '@fastgpt/service/core/ai/model';
44
import type { DatasetSimpleItemType } from '@fastgpt/global/core/dataset/type.d';
55
import { NextAPI } from '@/service/middleware/entry';
6-
import {
7-
PerResourceTypeEnum,
8-
ReadPermissionVal
9-
} from '@fastgpt/global/support/permission/constant';
10-
import { MongoResourcePermission } from '@fastgpt/service/support/permission/schema';
11-
import { DatasetPermission } from '@fastgpt/global/support/permission/dataset/controller';
6+
import { ReadPermissionVal } from '@fastgpt/global/support/permission/constant';
127
import { authUserPer } from '@fastgpt/service/support/permission/user/auth';
13-
import { DatasetDefaultPermissionVal } from '@fastgpt/global/support/permission/dataset/constant';
14-
import { getGroupsByTmbId } from '@fastgpt/service/support/permission/memberGroup/controllers';
15-
import { getGroupPer } from '@fastgpt/service/support/permission/controller';
8+
import { DatasetTypeEnum } from '@fastgpt/global/core/dataset/constants';
169

1710
/* get all dataset by teamId or tmbId */
1811
async function handler(req: NextApiRequest): Promise<DatasetSimpleItemType[]> {
19-
const {
20-
teamId,
21-
tmbId,
22-
permission: myPer
23-
} = await authUserPer({
12+
const { teamId } = await authUserPer({
2413
req,
2514
authToken: true,
2615
authApiKey: true,
2716
per: ReadPermissionVal
2817
});
2918

30-
const myGroupIds = (
31-
await getGroupsByTmbId({
32-
tmbId,
33-
teamId
34-
})
35-
).map((item) => String(item._id));
36-
37-
const [myDatasets, perList] = await Promise.all([
38-
MongoDataset.find({
39-
teamId
40-
})
41-
.sort({
42-
updateTime: -1
43-
})
44-
.lean(),
45-
MongoResourcePermission.find({
46-
resourceType: PerResourceTypeEnum.dataset,
47-
teamId,
48-
resourceId: {
49-
$exists: true
50-
}
51-
}).lean()
52-
]);
53-
54-
const filterDatasets = myDatasets
55-
.map((dataset) => {
56-
const per = (() => {
57-
const myPerList = perList.filter(
58-
(item) =>
59-
String(item.tmbId) === String(tmbId) || myGroupIds.includes(String(item.groupId))
60-
);
61-
62-
const getPer = (id: string) => {
63-
const tmbPer = myPerList.find(
64-
(item) => String(item.resourceId) === id && !!item.tmbId
65-
)?.permission;
66-
const groupPer = getGroupPer(
67-
myPerList
68-
.filter(
69-
(item) =>
70-
String(item.resourceId) === id && myGroupIds.includes(String(item.groupId))
71-
)
72-
.map((item) => item.permission)
73-
);
74-
75-
return new DatasetPermission({
76-
per: tmbPer ?? groupPer ?? DatasetDefaultPermissionVal,
77-
isOwner: String(dataset.tmbId) === String(tmbId) || myPer.isOwner
78-
});
79-
};
80-
81-
const parentDataset = myDatasets.find(
82-
(item) => String(item._id) === String(dataset.parentId)
83-
);
84-
85-
if (dataset.inheritPermission && dataset.parentId && parentDataset) {
86-
return getPer(parentDataset._id);
87-
} else {
88-
return getPer(dataset._id);
89-
}
90-
})();
91-
92-
return {
93-
...dataset,
94-
permission: per
95-
};
19+
const myDatasets = await MongoDataset.find({
20+
teamId,
21+
type: {
22+
$ne: DatasetTypeEnum.folder
23+
}
24+
})
25+
.sort({
26+
updateTime: -1
9627
})
97-
.filter((app) => app.permission.hasReadPer);
28+
.lean();
9829

99-
return filterDatasets.map((item) => ({
30+
return myDatasets.map((item) => ({
10031
_id: item._id,
10132
avatar: item.avatar,
10233
name: item.name,

0 commit comments

Comments
 (0)