diff --git a/packages/plugins/@nocobase/plugin-data-source-manager/src/client/component/PermissionManager/PermisionProvider.tsx b/packages/plugins/@nocobase/plugin-data-source-manager/src/client/component/PermissionManager/PermisionProvider.tsx
index 34036e1664..e70808df86 100644
--- a/packages/plugins/@nocobase/plugin-data-source-manager/src/client/component/PermissionManager/PermisionProvider.tsx
+++ b/packages/plugins/@nocobase/plugin-data-source-manager/src/client/component/PermissionManager/PermisionProvider.tsx
@@ -59,12 +59,16 @@ export const PermissionProvider = (props) => {
);
};
+export const CurrentDataSourceKey = createContext({ dataSourceKey: 'main' });
+
export const RoleRecordProvider = (props) => {
const role = useContext(CurrentRolesContext);
const record = useRecord();
return (
- {props.children}
+
+ {props.children}
+
);
};
diff --git a/packages/plugins/@nocobase/plugin-data-source-manager/src/client/component/PermissionManager/PermissionResourceActionProvider.tsx b/packages/plugins/@nocobase/plugin-data-source-manager/src/client/component/PermissionManager/PermissionResourceActionProvider.tsx
new file mode 100644
index 0000000000..829d767575
--- /dev/null
+++ b/packages/plugins/@nocobase/plugin-data-source-manager/src/client/component/PermissionManager/PermissionResourceActionProvider.tsx
@@ -0,0 +1,36 @@
+/**
+ * This file is part of the NocoBase (R) project.
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
+ * Authors: NocoBase Team.
+ *
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
+ * For more information, please refer to: https://www.nocobase.com/agreement.
+ */
+
+import React, { useContext } from 'react';
+import { ResourceActionProvider, useRecord } from '@nocobase/client';
+import { CurrentDataSourceKey } from './PermisionProvider';
+
+export const PermissionResourceActionProvider = (props) => {
+ const { dataSourceKey } = useContext(CurrentDataSourceKey);
+ const record = useRecord();
+ console.log(props, record.key, dataSourceKey);
+
+ // 创建一个新的请求对象,并添加 dataSourceKey
+ const modifiedRequest = {
+ ...props.request,
+ params: {
+ ...props.request.params,
+ filter: {
+ ...props.request.params.filter,
+ dataSourceKey, // 添加 dataSourceKey 到 filter
+ },
+ },
+ };
+
+ return (
+
+ {props.children}
+
+ );
+};
diff --git a/packages/plugins/@nocobase/plugin-data-source-manager/src/client/component/PermissionManager/schemas/roleCollections.ts b/packages/plugins/@nocobase/plugin-data-source-manager/src/client/component/PermissionManager/schemas/roleCollections.ts
index 875450bc43..c8ea11957a 100644
--- a/packages/plugins/@nocobase/plugin-data-source-manager/src/client/component/PermissionManager/schemas/roleCollections.ts
+++ b/packages/plugins/@nocobase/plugin-data-source-manager/src/client/component/PermissionManager/schemas/roleCollections.ts
@@ -11,7 +11,7 @@ import { ISchema } from '@formily/react';
import { uid } from '@formily/shared';
import { useRoleResourceValues } from './useRoleResourceValues';
import { useSaveRoleResourceAction } from './useSaveRoleResourceAction';
-
+import { PermissionResourceActionProvider } from '../PermissionResourceActionProvider';
const collection = {
name: 'dataSourcesCollections',
targetKey: 'name',
@@ -82,9 +82,9 @@ export const roleCollectionsSchema: ISchema = {
type: 'void',
'x-decorator': 'RoleRecordProvider',
properties: {
- block: {
+ [uid()]: {
type: 'void',
- 'x-decorator': 'ResourceActionProvider',
+ 'x-decorator': PermissionResourceActionProvider,
'x-decorator-props': {
collection,
association: {