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([]);
+});