44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
import { DatasetDataItemType } from '@fastgpt/global/core/dataset/type';
|
|
import { MongoDatasetData } from '@fastgpt/service/core/dataset/data/schema';
|
|
import { authDatasetCollection } from '@fastgpt/service/support/permission/auth/dataset';
|
|
import { AuthModeType } from '@fastgpt/service/support/permission/type';
|
|
|
|
/* data permission same of collection */
|
|
export async function authDatasetData({
|
|
dataId,
|
|
...props
|
|
}: AuthModeType & {
|
|
dataId: string;
|
|
}) {
|
|
// get pg data
|
|
const datasetData = await MongoDatasetData.findById(dataId);
|
|
|
|
if (!datasetData) {
|
|
return Promise.reject('Data not found');
|
|
}
|
|
|
|
const result = await authDatasetCollection({
|
|
...props,
|
|
collectionId: datasetData.collectionId
|
|
});
|
|
|
|
const data: DatasetDataItemType = {
|
|
id: String(datasetData._id),
|
|
q: datasetData.q,
|
|
a: datasetData.a,
|
|
chunkIndex: datasetData.chunkIndex,
|
|
indexes: datasetData.indexes,
|
|
datasetId: String(datasetData.datasetId),
|
|
collectionId: String(datasetData.collectionId),
|
|
sourceName: result.collection.name || '',
|
|
sourceId: result.collection?.fileId || result.collection?.rawLink,
|
|
isOwner: String(datasetData.tmbId) === result.tmbId,
|
|
canWrite: result.canWrite
|
|
};
|
|
|
|
return {
|
|
...result,
|
|
datasetData: data
|
|
};
|
|
}
|