34 lines
1.3 KiB
Python
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() |