# 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, require_permissions router = Router(tags=['perms']) # ========== 用户专属接口 ========== @router.get("/menus/", summary="获取当前用户菜单树") @require_permissions("menu:list") 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="获取当前用户按钮权限") @require_permissions("menu:list") def get_user_permissions_api(request): perms = get_user_permissions(request.auth.id) return {"permissions": perms}