diff --git a/bot/handlers/admin/logs_admin.py b/bot/handlers/admin/logs_admin.py index 7fa37cb..6316d29 100644 --- a/bot/handlers/admin/logs_admin.py +++ b/bot/handlers/admin/logs_admin.py @@ -364,11 +364,15 @@ async def export_logs_csv_handler(callback: types.CallbackQuery, _("admin_csv_header_telegram_username"), _("admin_csv_header_telegram_first_name"), _("admin_csv_header_event_type"), - _("admin_csv_header_content"), _("admin_csv_header_is_admin_event"), _("admin_csv_header_target_user_id"), - _("admin_csv_header_raw_update_preview") ] + include_sensitive_fields = bool(settings.LOG_EXPORT_INCLUDE_SENSITIVE) + if include_sensitive_fields: + headers.extend([ + _("admin_csv_header_content"), + _("admin_csv_header_raw_update_preview"), + ]) csv_writer.writerow(headers) # Write data rows @@ -387,11 +391,14 @@ async def export_logs_csv_handler(callback: types.CallbackQuery, log.telegram_username or '', log.telegram_first_name or '', log.event_type or '', - content_clean, 'Yes' if log.is_admin_event else 'No', log.target_user_id or '', - raw_update_clean ] + if include_sensitive_fields: + row.extend([ + content_clean, + raw_update_clean, + ]) csv_writer.writerow(row) # Create file diff --git a/bot/middlewares/action_logger_middleware.py b/bot/middlewares/action_logger_middleware.py index 2261df8..00ac360 100644 --- a/bot/middlewares/action_logger_middleware.py +++ b/bot/middlewares/action_logger_middleware.py @@ -40,13 +40,14 @@ class ActionLoggerMiddleware(BaseMiddleware): is_admin_event_flag = True raw_update_snippet = None - try: - raw_update_snippet = event.model_dump_json(exclude_none=True, - indent=None)[:1000] - except AttributeError: - raw_update_snippet = str(event)[:1000] - except Exception: - raw_update_snippet = str(event)[:1000] + if self.settings.LOG_STORE_RAW_UPDATES: + try: + raw_update_snippet = event.model_dump_json(exclude_none=True, + indent=None)[:1000] + except AttributeError: + raw_update_snippet = str(event)[:1000] + except Exception: + raw_update_snippet = str(event)[:1000] current_event_type = event.event_type @@ -83,7 +84,7 @@ class ActionLoggerMiddleware(BaseMiddleware): "telegram_username": telegram_username, "telegram_first_name": telegram_first_name, "event_type": current_event_type, - "content": content[:1000] if content else "N/A", + "content": (content[:1000] if content else "N/A") if self.settings.LOG_STORE_MESSAGE_CONTENT else None, "raw_update_preview": raw_update_snippet, "is_admin_event": is_admin_event_flag, "target_user_id": target_user_id_for_log,