27 lines
1.1 KiB
Python
Executable File
27 lines
1.1 KiB
Python
Executable File
# /opt/docker/dev/service_finder/backend/app/db/middleware.py
|
|
from fastapi import Request
|
|
from app.db.session import AsyncSessionLocal
|
|
from app.models import OperationalLog # JAVÍTVA: Az új modell
|
|
from sqlalchemy import text
|
|
|
|
async def audit_log_middleware(request: Request, call_next):
|
|
# Itt a config_service-t is aszinkron módon kell hívni, ha szükséges
|
|
response = await call_next(request)
|
|
|
|
if request.method != 'GET':
|
|
try:
|
|
user_id = getattr(request.state, 'user_id', None)
|
|
async with AsyncSessionLocal() as db:
|
|
log = OperationalLog(
|
|
user_id=user_id,
|
|
action=f"API_CALL_{request.method}",
|
|
resource_type="ENDPOINT",
|
|
resource_id=str(request.url.path),
|
|
details={"ip": request.client.host, "method": request.method}
|
|
)
|
|
db.add(log)
|
|
await db.commit()
|
|
except Exception:
|
|
pass # A naplózás nem akaszthatja meg a folyamatot
|
|
|
|
return response |