fix: role data source collection operation permissions list loading issue (#6431)

* fix: role data source collection operation permissions list loading issue

* fix: bug
This commit is contained in:
Katherine 2025-03-13 11:14:27 +08:00 committed by GitHub
parent 33a46a6645
commit c2a95fcbe9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 44 additions and 4 deletions

View File

@ -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 (
<RecordContext_deprecated.Provider value={{ ...role }}>
<SchemaComponentOptions scope={{ dataSourceKey: record.key }}>{props.children}</SchemaComponentOptions>
<CurrentDataSourceKey.Provider value={{ dataSourceKey: record.key }}>
<SchemaComponentOptions scope={{ dataSourceKey: record.key }}>{props.children}</SchemaComponentOptions>
</CurrentDataSourceKey.Provider>
</RecordContext_deprecated.Provider>
);
};

View File

@ -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 (
<ResourceActionProvider {...props} request={modifiedRequest}>
{props.children}
</ResourceActionProvider>
);
};

View File

@ -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: {