Telezab/utilities/log_user_action.py

34 lines
1.3 KiB
Python

from flask import session, request
from your_app import db # Импортируйте ваш экземпляр SQLAlchemy
from your_app.models import AuditLog # Импортируйте вашу модель AuditLog
from datetime import datetime
def log_user_action(action_type, description, result=None, details=None):
"""Записывает действие пользователя в таблицу audit_log."""
user_id = None
user_name = None
user_surname = None
user_middle_name = None
if 'username' in session:
user_id = session.get('username') # Используем username как user_id (логин)
user_name = session.get('user_name')
user_surname = session.get('user_surname')
user_middle_name = session.get('user_middle_name')
ip_address = request.remote_addr
log_entry = AuditLog(
timestamp=datetime.now(),
user_id=user_id,
user_name=user_name if user_name else '',
user_surname=user_surname if user_surname else '',
user_middle_name=user_middle_name if user_middle_name else '',
ip_address=ip_address,
action_type=action_type,
description=description,
result=result,
details=details
)
db.session.add(log_entry)
db.session.commit()