diff --git a/packages/core/client/src/acl/ACLProvider.tsx b/packages/core/client/src/acl/ACLProvider.tsx index 6dfa112361..09eaf964ad 100644 --- a/packages/core/client/src/acl/ACLProvider.tsx +++ b/packages/core/client/src/acl/ACLProvider.tsx @@ -74,6 +74,7 @@ export const ACLRolesCheckProvider = (props) => { url: 'roles:check', }, { + manual: !api.auth.token, onSuccess(data) { if (!data?.data?.snippets.includes('ui.*')) { setDesignable(false); diff --git a/packages/core/client/src/user/CurrentUserProvider.tsx b/packages/core/client/src/user/CurrentUserProvider.tsx index 4b1dcab21b..29c9d012c3 100644 --- a/packages/core/client/src/user/CurrentUserProvider.tsx +++ b/packages/core/client/src/user/CurrentUserProvider.tsx @@ -20,6 +20,11 @@ export const useCurrentUserContext = () => { return useContext(CurrentUserContext); }; +export const useIsLoggedIn = () => { + const ctx = useContext(CurrentUserContext); + return !!ctx?.data?.data; +}; + export const useCurrentRoles = () => { const { allowAnonymous } = useACLRoleContext(); const { data } = useCurrentUserContext(); @@ -39,14 +44,18 @@ export const useCurrentRoles = () => { export const CurrentUserProvider = (props) => { const api = useAPIClient(); - const result = useRequest(() => - api - .request({ - url: '/auth:check', - skipNotify: true, - skipAuth: true, - }) - .then((res) => res?.data), + const result = useRequest( + () => + api + .request({ + url: '/auth:check', + skipNotify: true, + skipAuth: true, + }) + .then((res) => res?.data), + { + manual: !api.auth.token, + }, ); const { render } = useAppSpin(); diff --git a/packages/plugins/@nocobase/plugin-environment-variables/src/client/EnvironmentVariablesAndSecretsProvider.tsx b/packages/plugins/@nocobase/plugin-environment-variables/src/client/EnvironmentVariablesAndSecretsProvider.tsx index 4346416cd6..557330c6e0 100644 --- a/packages/plugins/@nocobase/plugin-environment-variables/src/client/EnvironmentVariablesAndSecretsProvider.tsx +++ b/packages/plugins/@nocobase/plugin-environment-variables/src/client/EnvironmentVariablesAndSecretsProvider.tsx @@ -8,7 +8,7 @@ */ import { observer } from '@formily/react'; -import { useIsAdminPage, useRequest } from '@nocobase/client'; +import { useIsLoggedIn, useRequest } from '@nocobase/client'; import React, { createContext } from 'react'; const EnvAndSecretsContext = createContext({}); @@ -22,8 +22,8 @@ const InternalProvider = (props) => { const EnvironmentVariablesAndSecretsProvider = observer( (props) => { - const isAdminPage = useIsAdminPage(); - if (!isAdminPage) { + const isLoggedIn = useIsLoggedIn(); + if (!isLoggedIn) { return <>{props.children}; } return ; diff --git a/packages/plugins/@nocobase/plugin-workflow/src/client/WorkflowTasks.tsx b/packages/plugins/@nocobase/plugin-workflow/src/client/WorkflowTasks.tsx index 6b843ce024..3ebc7134b7 100644 --- a/packages/plugins/@nocobase/plugin-workflow/src/client/WorkflowTasks.tsx +++ b/packages/plugins/@nocobase/plugin-workflow/src/client/WorkflowTasks.tsx @@ -6,12 +6,12 @@ * 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 { CheckCircleOutlined } from '@ant-design/icons'; +import { PageHeader } from '@ant-design/pro-layout'; +import { Badge, Button, Layout, Menu, Tabs, Tooltip } from 'antd'; +import classnames from 'classnames'; import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react'; import { Link, Outlet, useNavigate, useParams } from 'react-router-dom'; -import { Button, Layout, Menu, Badge, Tooltip, Tabs } from 'antd'; -import { PageHeader } from '@ant-design/pro-layout'; -import { CheckCircleOutlined } from '@ant-design/icons'; -import classnames from 'classnames'; import { css, @@ -22,7 +22,7 @@ import { useApp, useCompile, useDocumentTitle, - useIsAdminPage, + useIsLoggedIn, usePlugin, useRequest, useToken, @@ -373,7 +373,7 @@ function TasksCountsProvider(props: any) { } export const TasksProvider = (props: any) => { - const isAdminPage = useIsAdminPage(); + const isLoggedIn = useIsLoggedIn(); const content = ( { ); - return isAdminPage ? {content} : content; + return isLoggedIn ? {content} : content; };