fix: filter out invisible menus and clean up ghost nodes in permission tree
This commit is contained in:
@ -11,8 +11,8 @@ class PermissionService:
|
||||
获取完整的权限树(菜单嵌套菜单 + 菜单包含元素)
|
||||
供前端权限配置页面展示
|
||||
"""
|
||||
# 1. 获取所有菜单 (按 parent_id 和 sort_order 排序,保证父子处理顺序)
|
||||
menus = SysMenu.query.order_by(SysMenu.parent_id, SysMenu.sort_order).all()
|
||||
# 1. 获取所有可见菜单 (按 parent_id 和 sort_order 排序,保证父子处理顺序)
|
||||
menus = SysMenu.query.filter(SysMenu.is_visible == True).order_by(SysMenu.parent_id, SysMenu.sort_order).all()
|
||||
# 2. 获取所有元素
|
||||
elements = SysElement.query.all()
|
||||
|
||||
@ -64,8 +64,8 @@ class PermissionService:
|
||||
try:
|
||||
# === 新增逻辑:超级管理员上帝模式 ===
|
||||
if role_code == 'SUPER_ADMIN':
|
||||
# 直接获取所有菜单和元素,无视配置表
|
||||
all_menus = [m.code for m in SysMenu.query.all()]
|
||||
# 直接获取所有可见菜单和元素,无视配置表
|
||||
all_menus = [m.code for m in SysMenu.query.filter(SysMenu.is_visible == True).all()]
|
||||
all_elements = [e.code for e in SysElement.query.all()]
|
||||
return {
|
||||
'menus': all_menus,
|
||||
|
||||
Reference in New Issue
Block a user