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
|