mirror of
https://github.com/labring/FastGPT.git
synced 2025-07-21 11:43:56 +00:00

* feat: sync org from wecom, pref: member list pagination (#3549) * feat: sync org * chore: fe * chore: loading * chore: type * pref: team member list change to pagination. Edit a sort of list apis. * feat: member update avatar * chore: user avatar move to tmb * chore: init scripts move user avatar * chore: sourceMember * fix: list api sourceMember * fix: member sync * fix: pagination * chore: adjust code * chore: move changeOwner to pro * chore: init v4819 script * chore: adjust code * chore: UserBox * perf: scroll page code * perf: list data * docs:更新用户答疑 (#3576) * docs: add custom uid docs (#3572) * fix: pagination bug (#3577) * 4.8.19 test (#3584) * faet: dataset search filter * fix: scroll page * fix: collection list api old version (#3591) * fix: collection list api format * fix: type error of addSourceMemeber * fix: scroll fetch (#3592) * fix: yuque dataset file folder can enter (#3593) * perf: load members;perf: yuque load;fix: workflow llm params cannot close (#3594) * chat openapi doc * feat: dataset openapi doc * perf: load members * perf: member load code * perf: yuque load * fix: workflow llm params cannot close * fix: api dataset reference tag preview (#3600) * perf: doc * feat: chat page config * fix: http parse (#3634) * update doc * fix: http parse * fix code run node reset template (#3633) Co-authored-by: Archer <545436317@qq.com> * docs:faq (#3627) * docs:faq * docsFix * perf: sleep plugin * fix: selector --------- Co-authored-by: Finley Ge <32237950+FinleyGe@users.noreply.github.com> Co-authored-by: Jiangween <145003935+Jiangween@users.noreply.github.com> Co-authored-by: heheer <heheer@sealos.io>
40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
import { getTmbInfoByTmbId } from '../../support/user/team/controller';
|
|
import { getResourcePermission } from '../../support/permission/controller';
|
|
import { PerResourceTypeEnum } from '@fastgpt/global/support/permission/constant';
|
|
import { DatasetPermission } from '@fastgpt/global/support/permission/dataset/controller';
|
|
|
|
// TODO: 需要优化成批量获取权限
|
|
export const filterDatasetsByTmbId = async ({
|
|
datasetIds,
|
|
tmbId
|
|
}: {
|
|
datasetIds: string[];
|
|
tmbId: string;
|
|
}) => {
|
|
const { teamId, permission: tmbPer } = await getTmbInfoByTmbId({ tmbId });
|
|
|
|
// First get all permissions
|
|
const permissions = await Promise.all(
|
|
datasetIds.map(async (datasetId) => {
|
|
const per = await getResourcePermission({
|
|
teamId,
|
|
tmbId,
|
|
resourceId: datasetId,
|
|
resourceType: PerResourceTypeEnum.dataset
|
|
});
|
|
|
|
if (per === undefined) return false;
|
|
|
|
const datasetPer = new DatasetPermission({
|
|
per,
|
|
isOwner: tmbPer.isOwner
|
|
});
|
|
|
|
return datasetPer.hasReadPer;
|
|
})
|
|
);
|
|
|
|
// Then filter datasetIds based on permissions
|
|
return datasetIds.filter((_, index) => permissions[index]);
|
|
};
|