update. 完善用户相关增删改查接口以及Schema模型
This commit is contained in:
+16
-24
@@ -1,23 +1,29 @@
|
||||
# api/menus.py
|
||||
from typing import List
|
||||
|
||||
from django.shortcuts import get_object_or_404
|
||||
from loguru import logger
|
||||
from ninja import Router
|
||||
from ninja.errors import HttpError
|
||||
|
||||
from users.models import Menu
|
||||
from users.permission import has_permission
|
||||
from users.permission import require_permissions
|
||||
from users.schema import MenuOut, MenuCreate, MenuUpdate
|
||||
|
||||
router = Router(tags=['menus'])
|
||||
|
||||
|
||||
@router.post("/", response=MenuOut, summary="创建菜单")
|
||||
def create_menu(request, payload: MenuCreate):
|
||||
if not has_permission(request.auth.id, "menu:create"):
|
||||
raise HttpError(403, "权限不足")
|
||||
@router.get("/", response=List[MenuOut], summary="获取菜单列表")
|
||||
@require_permissions("menu:list")
|
||||
def list_menus(request):
|
||||
menus = Menu.objects.all()
|
||||
logger.info(menus)
|
||||
permissions = [m.permission_code for m in menus]
|
||||
logger.info(permissions)
|
||||
return menus
|
||||
|
||||
|
||||
@router.post("/", response=MenuOut, summary="创建菜单")
|
||||
@require_permissions("menu:create")
|
||||
def create_menu(request, payload: MenuCreate):
|
||||
data = payload.dict()
|
||||
parent_id = data.pop('parent_id', None)
|
||||
if parent_id:
|
||||
@@ -27,29 +33,16 @@ def create_menu(request, payload: MenuCreate):
|
||||
return menu
|
||||
|
||||
|
||||
@router.get("/", response=List[MenuOut], summary="获取菜单列表")
|
||||
def list_menus(request):
|
||||
if not has_permission(request.auth.id, "menu:list"):
|
||||
raise HttpError(403, "权限不足")
|
||||
menus = Menu.objects.all()
|
||||
logger.info(menus)
|
||||
permissions = [m.permission_code for m in menus]
|
||||
logger.info(permissions)
|
||||
return menus
|
||||
|
||||
|
||||
@router.get("/{menu_id}/", response=MenuOut, summary="获取菜单详情")
|
||||
@require_permissions("menu:view")
|
||||
def get_menu(request, menu_id: int):
|
||||
if not has_permission(request.auth.id, "menu:view"):
|
||||
raise HttpError(403, "权限不足")
|
||||
menu = get_object_or_404(Menu, id=menu_id)
|
||||
return menu
|
||||
|
||||
|
||||
@router.put("/{menu_id}/", response=MenuOut, summary="更新菜单")
|
||||
@require_permissions("menu:update")
|
||||
def update_menu(request, menu_id: int, payload: MenuUpdate):
|
||||
# if not has_permission(request.auth.id, "menu:update"):
|
||||
# raise HttpError(403, "权限不足")
|
||||
logger.debug(payload)
|
||||
menu = get_object_or_404(Menu, id=menu_id)
|
||||
data = payload.dict()
|
||||
@@ -67,9 +60,8 @@ def update_menu(request, menu_id: int, payload: MenuUpdate):
|
||||
|
||||
|
||||
@router.delete("/{menu_id}/", summary="删除菜单")
|
||||
@require_permissions("menu:delete")
|
||||
def delete_menu(request, menu_id: int):
|
||||
if not has_permission(request.auth.id, "menu:delete"):
|
||||
raise HttpError(403, "权限不足")
|
||||
menu = get_object_or_404(Menu, id=menu_id)
|
||||
menu.delete()
|
||||
return {"success": True}
|
||||
|
||||
Reference in New Issue
Block a user