28 lines
788 B
Python
28 lines
788 B
Python
# api/permissions.py
|
|
from loguru import logger
|
|
from ninja import Router
|
|
|
|
from users.models import Menu
|
|
from users.permission import build_menu_tree, get_user_permissions
|
|
|
|
router = Router(tags=['perms'])
|
|
|
|
|
|
# ========== 用户专属接口 ==========
|
|
@router.get("/menus/", summary="获取当前用户菜单树")
|
|
def get_user_menu_tree(request):
|
|
menus = Menu.objects.filter(
|
|
roles__users__id=request.auth.id,
|
|
menu_type__in=[0, 1],
|
|
status=True
|
|
).order_by('order_num')
|
|
tree_menus = build_menu_tree(list(menus))
|
|
logger.info(tree_menus)
|
|
return tree_menus
|
|
|
|
|
|
@router.get("/permissions/", summary="获取当前用户按钮权限")
|
|
def get_user_permissions_api(request):
|
|
perms = get_user_permissions(request.auth.id)
|
|
return {"permissions": perms}
|