From 91c984793516bd0ba15572094ff51ae4640e64df Mon Sep 17 00:00:00 2001 From: suzj Date: Thu, 27 Jul 2023 14:54:39 +0800 Subject: [PATCH] =?UTF-8?q?[Bugfix]=E4=BF=AE=E5=A4=8D=E6=9C=AA=E5=8B=BE?= =?UTF-8?q?=E9=80=89=E7=B3=BB=E7=BB=9F=E7=AE=A1=E7=90=86=E6=9F=A5=E7=9C=8B?= =?UTF-8?q?=E6=9D=83=E9=99=90=EF=BC=8C=E4=BD=86=E6=98=AF=E4=BE=9D=E7=84=B6?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E6=9F=A5=E7=9C=8B=E7=B3=BB=E7=BB=9F=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../packages/layout-clusters-fe/src/app.tsx | 35 +++++++++++-------- .../src/pages/CommonConfig.tsx | 10 ++++++ 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/km-console/packages/layout-clusters-fe/src/app.tsx b/km-console/packages/layout-clusters-fe/src/app.tsx index b945a9c08..4df691ebd 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 4d01da979..08fccce58 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 = '删除集群', @@ -88,6 +91,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 }));