Restore-ZQ-admin-quality-while-trimming-AI-routes
This commit is contained in:
@@ -17,8 +17,33 @@ from core.menu.schema import MenuCreate, MenuUpdate
|
||||
menu_cache = CacheManager(prefix="menu:")
|
||||
|
||||
# 缓存key
|
||||
MENU_TREE_CACHE_KEY = "tree"
|
||||
USER_ROUTE_CACHE_PREFIX = "user_route:"
|
||||
MENU_TREE_CACHE_KEY = "tree:ai_agent_admin"
|
||||
USER_ROUTE_CACHE_PREFIX = "user_route:ai_agent_admin:"
|
||||
|
||||
AI_AGENT_ADMIN_MENU_NAMES = {
|
||||
"AIPlatform",
|
||||
"AIAgent",
|
||||
"AIWorkflow",
|
||||
"KnowledgeBase",
|
||||
"Codex",
|
||||
"SystemConfigManager",
|
||||
"SystemManagement",
|
||||
"SystemPermission",
|
||||
"UserManagement",
|
||||
"SystemMenu",
|
||||
"SystemRole",
|
||||
"Message",
|
||||
"AnnouncementList",
|
||||
"AnnouncementManage",
|
||||
"userCenter",
|
||||
"userSettings",
|
||||
"LoginLog",
|
||||
}
|
||||
|
||||
|
||||
def _filter_ai_agent_admin_menus(menus: List[Menu]) -> List[Menu]:
|
||||
"""Keep only the lightweight admin and AI modules for this product."""
|
||||
return [menu for menu in menus if menu.name in AI_AGENT_ADMIN_MENU_NAMES]
|
||||
|
||||
|
||||
class MenuService(BaseService[Menu, MenuCreate, MenuUpdate]):
|
||||
@@ -239,7 +264,7 @@ class MenuService(BaseService[Menu, MenuCreate, MenuUpdate]):
|
||||
Menu.is_deleted == False # noqa: E712
|
||||
).order_by(Menu.order)
|
||||
)
|
||||
return list(result.scalars().all())
|
||||
return _filter_ai_agent_admin_menus(list(result.scalars().all()))
|
||||
|
||||
@classmethod
|
||||
async def build_tree(
|
||||
@@ -613,6 +638,8 @@ class MenuService(BaseService[Menu, MenuCreate, MenuUpdate]):
|
||||
).order_by(Menu.order)
|
||||
)
|
||||
menus = list(result.scalars().all())
|
||||
|
||||
menus = _filter_ai_agent_admin_menus(menus)
|
||||
|
||||
# 构建路由树,传递 application_code 用于添加路径前缀
|
||||
# 开发模式使用 /app-dev/{code} 前缀,正常模式使用 /app/{code} 前缀
|
||||
|
||||
Reference in New Issue
Block a user