mirror of
https://github.com/fastapi-practices/fastapi_best_architecture.git
synced 2025-08-16 21:09:28 +08:00

* Reconstruct RBAC authentication logic * fix typo * Migrate casbin sqla Adapter to redis * Delete casbin model conf file * Add permission dependencies * Add request permission depends on execution condition * Update openapi authorization method * Add request permission identity * Add request permission dependency description * Migrate casbin redis adapter to sqla * Update menu model and add function * Fix menu permission identification * Update user partial interface permissions * Update menu table SQL * Add role menu permission description to README * fix README typo * Simplify permission dependency injection * Fix menu authorization store * Fix interface permission dependency order * Update role menu permission flag * Update the background permission logic of the interface
32 lines
1.0 KiB
Python
32 lines
1.0 KiB
Python
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
from fastapi import APIRouter, Depends
|
||
from starlette.concurrency import run_in_threadpool
|
||
|
||
from backend.app.common.jwt import DependsJwtAuth
|
||
from backend.app.common.permission import RequestPermission
|
||
from backend.app.common.response.response_schema import response_base
|
||
from backend.app.utils.server_info import server_info
|
||
|
||
router = APIRouter()
|
||
|
||
|
||
@router.get(
|
||
'/server',
|
||
summary='server 监控',
|
||
dependencies=[
|
||
Depends(RequestPermission('sys:monitor:server')),
|
||
DependsJwtAuth,
|
||
],
|
||
)
|
||
async def get_server_info():
|
||
"""IO密集型任务,使用线程池尽量减少性能损耗"""
|
||
data = {
|
||
'cpu': await run_in_threadpool(server_info.get_cpu_info),
|
||
'mem': await run_in_threadpool(server_info.get_mem_info),
|
||
'sys': await run_in_threadpool(server_info.get_sys_info),
|
||
'disk': await run_in_threadpool(server_info.get_disk_info),
|
||
'service': await run_in_threadpool(server_info.get_service_info),
|
||
}
|
||
return await response_base.success(data=data)
|