from typing import List from fastapi import APIRouter, Depends from ..dependencies import AuthUser, get_current_user from ..models import RoleName from ..schemas import MenuItem router = APIRouter(prefix="/api/v1/menus", tags=["menus"]) @router.get("", response_model=List[MenuItem]) async def get_menus(auth_user: AuthUser = Depends(get_current_user)) -> List[MenuItem]: base_menus = [ MenuItem(label="EC2 实例", key="instances", path="/instances", icon="desktop"), MenuItem(label="AWS 凭证", key="credentials", path="/credentials", icon="key"), MenuItem(label="任务中心", key="jobs", path="/jobs", icon="tasks"), MenuItem(label="审计日志", key="audit", path="/audit", icon="history"), ] if auth_user.role_name == RoleName.ADMIN.value: base_menus.insert(0, MenuItem(label="仪表盘", key="dashboard", path="/")) base_menus.append(MenuItem(label="客户管理", key="customers", path="/customers", icon="team")) base_menus.append(MenuItem(label="用户管理", key="users", path="/users", icon="user")) elif auth_user.role_name == RoleName.CUSTOMER_ADMIN.value: base_menus.append(MenuItem(label="用户管理", key="users", path="/users", icon="user")) return base_menus