This is an automated email from the ASF dual-hosted git repository.

dengliming pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu-dashboard.git


The following commit(s) were added to refs/heads/master by this push:
     new fed203e0 fix: remove unauthorized empty menus (#669)
fed203e0 is described below

commit fed203e01101c81c73af0a66a79bcb0ee90da73f
Author: Efe <[email protected]>
AuthorDate: Sat Sep 26 08:26:59 2026 +0300

    fix: remove unauthorized empty menus (#669)
---
 src/utils/AuthRoute.js      |  2 +-
 src/utils/AuthRoute.test.js | 14 ++++++++++++++
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/utils/AuthRoute.js b/src/utils/AuthRoute.js
index 369f0778..025fe810 100644
--- a/src/utils/AuthRoute.js
+++ b/src/utils/AuthRoute.js
@@ -207,7 +207,7 @@ export function getAuthMenus(plugins, menuTree, 
permissions, beginCache) {
   }
 
   if (Array.isArray(authMenus) && authMenus.length) {
-    removeEmptyMenu(authMenus);
+    authMenus = removeEmptyMenu(authMenus);
   }
 
   if (beginCache) {
diff --git a/src/utils/AuthRoute.test.js b/src/utils/AuthRoute.test.js
index 2751c8f8..7948c388 100644
--- a/src/utils/AuthRoute.test.js
+++ b/src/utils/AuthRoute.test.js
@@ -146,3 +146,17 @@ it("keeps locale-specific caches consistent after their 
permission source change
   expect(getAuthMenus(plugins, tree, emptyPermissions, true)).toEqual([]);
   window.sessionStorage.removeItem("locale");
 });
+
+it("removes parent menus when none of their children are authorized", () => {
+  const menuTree = [
+    {
+      name: "system",
+      url: "/system",
+      meta: { title: "System" },
+      children: [{ url: "/system/role", meta: { title: "Role" } }],
+    },
+  ];
+  const permissions = { menu: [{ url: "/system", meta: {} }] };
+
+  expect(getAuthMenus([], menuTree, permissions, false)).toEqual([]);
+});

Reply via email to