Files
hive-manage-v3/backend/app/api/audit.py
T
2026-07-22 16:52:09 +08:00

28 lines
914 B
Python

"""Audit API: list audit logs — only owner."""
from fastapi import APIRouter, Depends, Query
from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from app.database import get_db
from app.middleware.auth import require_role
from app.models.audit import AuditLog
from app.models.user import User
router = APIRouter(prefix="/api/v1/audit", tags=["audit"])
@router.get("")
async def list_audit(
page: int = Query(1, ge=1),
page_size: int = Query(20, ge=1, le=100),
action: str | None = Query(None),
user: User = Depends(require_role("owner")),
db: AsyncSession = Depends(get_db),
):
query = select(AuditLog).order_by(AuditLog.created_at.desc())
if action:
query = query.where(AuditLog.action.ilike(f"%{action}%"))
query = query.offset((page - 1) * page_size).limit(page_size)
result = await db.execute(query)
return result.scalars().all()