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) => { export const RoleRecordProvider = (props) => {
const role = useContext(CurrentRolesContext); const role = useContext(CurrentRolesContext);
const record = useRecord(); const record = useRecord();
return ( return (
<RecordContext_deprecated.Provider value={{ ...role }}> <RecordContext_deprecated.Provider value={{ ...role }}>
<CurrentDataSourceKey.Provider value={{ dataSourceKey: record.key }}>
<SchemaComponentOptions scope={{ dataSourceKey: record.key }}>{props.children}</SchemaComponentOptions> <SchemaComponentOptions scope={{ dataSourceKey: record.key }}>{props.children}</SchemaComponentOptions>
</CurrentDataSourceKey.Provider>
</RecordContext_deprecated.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 { uid } from '@formily/shared';
import { useRoleResourceValues } from './useRoleResourceValues'; import { useRoleResourceValues } from './useRoleResourceValues';
import { useSaveRoleResourceAction } from './useSaveRoleResourceAction'; import { useSaveRoleResourceAction } from './useSaveRoleResourceAction';
import { PermissionResourceActionProvider } from '../PermissionResourceActionProvider';
const collection = { const collection = {
name: 'dataSourcesCollections', name: 'dataSourcesCollections',
targetKey: 'name', targetKey: 'name',
@ -82,9 +82,9 @@ export const roleCollectionsSchema: ISchema = {
type: 'void', type: 'void',
'x-decorator': 'RoleRecordProvider', 'x-decorator': 'RoleRecordProvider',
properties: { properties: {
block: { [uid()]: {
type: 'void', type: 'void',
'x-decorator': 'ResourceActionProvider', 'x-decorator': PermissionResourceActionProvider,
'x-decorator-props': { 'x-decorator-props': {
collection, collection,
association: { association: {