diff --git a/packages/core/client/src/user/CurrentUserProvider.tsx b/packages/core/client/src/user/CurrentUserProvider.tsx index d7532cf959..acc9ecd091 100644 --- a/packages/core/client/src/user/CurrentUserProvider.tsx +++ b/packages/core/client/src/user/CurrentUserProvider.tsx @@ -12,7 +12,7 @@ import { useACLRoleContext } from '../acl'; import { ReturnTypeOfUseRequest, useAPIClient, useRequest } from '../api-client'; import { useAppSpin } from '../application'; import { useCompile } from '../schema-component'; -import { useTranslation } from 'react-i18next'; +import { useSystemSettings } from '../system-settings'; export const CurrentUserContext = createContext(null); CurrentUserContext.displayName = 'CurrentUserContext'; @@ -39,8 +39,8 @@ export const useCurrentRoles = () => { }; export const useCurrentRoleMode = () => { - const { roleMode } = useCurrentUserContext(); - return roleMode?.data; + const ctx = useSystemSettings(); + return ctx?.data?.data?.roleMode; }; export const CurrentUserProvider = (props) => { @@ -55,16 +55,10 @@ export const CurrentUserProvider = (props) => { .then((res) => res?.data), ); - const { loading: roleModeLoading, data } = useRequest(() => api.resource('roles').getSystemRoleMode(), { - onSuccess: (res) => { - return res.data.data.roleMode; - }, - }); const { render } = useAppSpin(); - if (result.loading || roleModeLoading) { + if (result.loading) { return render(); } - result['roleMode'] = data?.['data']; return {props.children}; }; diff --git a/packages/plugins/@nocobase/plugin-acl/src/client/RoleModeSelect.tsx b/packages/plugins/@nocobase/plugin-acl/src/client/RoleModeSelect.tsx index 97898e30e3..d37b08a499 100644 --- a/packages/plugins/@nocobase/plugin-acl/src/client/RoleModeSelect.tsx +++ b/packages/plugins/@nocobase/plugin-acl/src/client/RoleModeSelect.tsx @@ -7,12 +7,11 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Flex, message, Select, Space, theme, Tooltip } from 'antd'; -import { useACLTranslation } from './locale'; -import { useRequest } from 'ahooks'; import { useAPIClient, useCurrentRoleMode } from '@nocobase/client'; +import { useRequest } from 'ahooks'; +import { Flex, message, Select, theme, Tooltip } from 'antd'; import React, { useState } from 'react'; -import { QuestionCircleOutlined } from '@ant-design/icons'; +import { useACLTranslation } from './locale'; export const RoleModeSelect = () => { const { t } = useACLTranslation();