36 lines
827 B
Python
36 lines
827 B
Python
|
|
# -*- coding: utf-8 -*-
|
|||
|
|
"""Audit-Logging – zeichnet alle schreibenden Aktionen auf."""
|
|||
|
|
|
|||
|
|
from sqlalchemy.orm import Session
|
|||
|
|
|
|||
|
|
from ..core.models import AuditLog
|
|||
|
|
|
|||
|
|
|
|||
|
|
def log_action(
|
|||
|
|
db: Session,
|
|||
|
|
*,
|
|||
|
|
user_id: str | None,
|
|||
|
|
action: str,
|
|||
|
|
entity_type: str,
|
|||
|
|
entity_id: str | None = None,
|
|||
|
|
practice_id: str | None = None,
|
|||
|
|
old_values: dict | None = None,
|
|||
|
|
new_values: dict | None = None,
|
|||
|
|
ip_address: str | None = None,
|
|||
|
|
user_agent: str | None = None,
|
|||
|
|
):
|
|||
|
|
entry = AuditLog(
|
|||
|
|
user_id=user_id,
|
|||
|
|
action=action,
|
|||
|
|
entity_type=entity_type,
|
|||
|
|
entity_id=entity_id,
|
|||
|
|
practice_id=practice_id,
|
|||
|
|
old_values=old_values,
|
|||
|
|
new_values=new_values,
|
|||
|
|
ip_address=ip_address,
|
|||
|
|
user_agent=user_agent,
|
|||
|
|
)
|
|||
|
|
db.add(entry)
|
|||
|
|
db.flush()
|
|||
|
|
return entry
|