27 lines
1.2 KiB
Python
27 lines
1.2 KiB
Python
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
|