Template
- 用户管理:增删改、批量导入(Excel模板)、admin保护 - 部门管理:增删改(含回收站恢复机制)、删除保护(有用户不可删) - 权限管理:部门内角色(admin/readwrite/readonly/none) - 监控页面:CPU/内存/磁盘实时监控 - 日志页面:操作日志查询 - SMB权限:用户文件夹700(member)/750(admin)、ACL继承 - admin跨目录访问:通过setfacl ACL实现
42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
"""监控路由"""
|
|
import json
|
|
from fastapi import APIRouter, Depends
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
from sqlalchemy import select
|
|
|
|
from app.database import get_session
|
|
from app.models import DiskUsageSnapshot
|
|
from app.models import Department
|
|
from app.schemas import DiskUsageResponse
|
|
from app.services.disk_monitor import get_disk_usage, get_dept_usages
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/disk", response_model=DiskUsageResponse)
|
|
async def get_disk(
|
|
current_user=Depends(__import__("app.routers.auth", fromlist=["get_current_user"]).get_current_user),
|
|
session: AsyncSession = Depends(get_session)
|
|
):
|
|
usage = get_disk_usage()
|
|
dept_usages = get_dept_usages()
|
|
|
|
# 保存快照
|
|
snapshot = DiskUsageSnapshot(
|
|
total_space=usage["total_space"],
|
|
used_space=usage["used_space"],
|
|
free_space=usage["free_space"],
|
|
usage_percent=usage["usage_percent"],
|
|
dept_usages=json.dumps(dept_usages, ensure_ascii=False)
|
|
)
|
|
session.add(snapshot)
|
|
await session.commit()
|
|
|
|
return DiskUsageResponse(
|
|
total_space=usage["total_space"],
|
|
used_space=usage["used_space"],
|
|
free_space=usage["free_space"],
|
|
usage_percent=usage["usage_percent"],
|
|
dept_usages=dept_usages
|
|
)
|