Restrict menu visibility for non-System Users

This commit is contained in:
jingrow 2025-11-19 01:42:00 +08:00
parent 1811c3fe2f
commit 329a5d1c5c
2 changed files with 44 additions and 6 deletions

View File

@ -176,9 +176,26 @@ export const useMenuStore = defineStore('menu', () => {
// 过滤隐藏的菜单项
if (m.hidden) return false
// 非 System User 过滤掉 pagetype 和 workspace 类型
if (!isSystemUser && (m.type === 'pagetype' || m.type === 'workspace')) {
return false
// 非 System User 的过滤逻辑
if (!isSystemUser) {
// 过滤掉 pagetype 和 workspace 类型
if (m.type === 'pagetype' || m.type === 'workspace') {
return false
}
// 只允许显示的根菜单:工具、开发、菜单管理、设置
const allowedRootMenus = ['tools', 'dev-group', 'menuManager', 'settings']
if (!m.parentId && !allowedRootMenus.includes(m.id)) {
return false
}
// 开发分组下只允许显示:应用市场、节点市场、智能体市场
if (m.parentId === 'dev-group') {
const allowedDevMenus = ['app-marketplace', 'node-marketplace', 'agent-marketplace']
if (!allowedDevMenus.includes(m.id)) {
return false
}
}
}
return true

View File

@ -164,10 +164,31 @@ const filteredItems = computed(() => {
const isSystemUser = userType === 'System User'
return menuStore.items.filter(m => {
// System User pagetype workspace
if (!isSystemUser && (m.type === 'pagetype' || m.type === 'workspace')) {
return false
//
if (m.hidden) return false
// System User
if (!isSystemUser) {
// pagetype workspace
if (m.type === 'pagetype' || m.type === 'workspace') {
return false
}
//
const allowedRootMenus = ['tools', 'dev-group', 'menuManager', 'settings']
if (!m.parentId && !allowedRootMenus.includes(m.id)) {
return false
}
//
if (m.parentId === 'dev-group') {
const allowedDevMenus = ['app-marketplace', 'node-marketplace', 'agent-marketplace']
if (!allowedDevMenus.includes(m.id)) {
return false
}
}
}
return true
})
})