diff --git a/km-console/packages/layout-clusters-fe/src/app.tsx b/km-console/packages/layout-clusters-fe/src/app.tsx index b945a9c0..4df691eb 100755 --- a/km-console/packages/layout-clusters-fe/src/app.tsx +++ b/km-console/packages/layout-clusters-fe/src/app.tsx @@ -20,6 +20,7 @@ import { getLicenseInfo } from './constants/common'; import api from './api'; import ClusterContainer from './pages/index'; import ksLogo from './assets/ks-logo.png'; +import {ClustersPermissionMap} from "./pages/CommonConfig"; interface ILocaleMap { [index: string]: any; @@ -116,6 +117,8 @@ const AppContent = (props: { setlanguage: (language: string) => void }) => { const userInfo = localStorage.getItem('userInfo'); const [curActiveAppName, setCurActiveAppName] = useState(''); const [versionInfo, setVersionInfo] = useState(); + const [global] = AppContainer.useGlobalValue(); + const quickEntries=[]; useEffect(() => { if (pathname.startsWith('/config')) { @@ -132,6 +135,23 @@ const AppContent = (props: { setlanguage: (language: string) => void }) => { }); }, []); + if (global.hasPermission && global.hasPermission(ClustersPermissionMap.CLUSTERS_MANAGE_VIEW)){ + quickEntries.push({ + icon: , + txt: '多集群管理', + ident: '', + active: curActiveAppName === 'cluster', + }); + } + if (global.hasPermission && global.hasPermission(ClustersPermissionMap.SYS_MANAGE_VIEW)){ + quickEntries.push({ + icon: , + txt: '系统管理', + ident: 'config', + active: curActiveAppName === 'config', + }); + } + return ( void }) => { ), username: userInfo ? JSON.parse(userInfo)?.userName : '', icon: , - quickEntries: [ - { - icon: , - txt: '多集群管理', - ident: '', - active: curActiveAppName === 'cluster', - }, - { - icon: , - txt: '系统管理', - ident: 'config', - active: curActiveAppName === 'config', - }, - ], + quickEntries: quickEntries, isFixed: false, userDropMenuItems: [ diff --git a/km-console/packages/layout-clusters-fe/src/pages/CommonConfig.tsx b/km-console/packages/layout-clusters-fe/src/pages/CommonConfig.tsx index 712e98fc..722d04e6 100644 --- a/km-console/packages/layout-clusters-fe/src/pages/CommonConfig.tsx +++ b/km-console/packages/layout-clusters-fe/src/pages/CommonConfig.tsx @@ -7,6 +7,9 @@ import { goLogin } from '@src/constants/axiosConfig'; export enum ClustersPermissionMap { CLUSTERS_MANAGE = '多集群管理', CLUSTERS_MANAGE_VIEW = '多集群管理查看', + //仅用作隐藏掉系统管理菜单 + SYS_MANAGE = '系统管理', + SYS_MANAGE_VIEW = '系统管理查看', // Cluster CLUSTER_ADD = '接入集群', CLUSTER_DEL = '删除集群', @@ -94,6 +97,13 @@ const CommonConfig = () => { clustersPermissions && clustersPermissions.childList.forEach((node: PermissionNode) => node.has && userPermissions.push(node.permissionName)); + // 获取用户在系统管理拥有的权限 + const configPermissions = userPermissionTree.find( + (sys: PermissionNode) => sys.permissionName === ClustersPermissionMap.SYS_MANAGE + ); + configPermissions && + configPermissions.childList.forEach((node: PermissionNode) => node.has && userPermissions.push(node.permissionName)); + const hasPermission = (permissionName: ClustersPermissionMap) => permissionName && userPermissions.includes(permissionName); setGlobal((curState: any) => ({ ...curState, permissions: allPermissions, userPermissions, hasPermission, userInfo }));