Files
portal-api/memory/project_activity_log.md

2.3 KiB

name, description, type
name description type
Activity Log System Hệ thống ghi log toàn diện mọi hành động trên portal - đã implement 2026-05-16 project

Đã implement comprehensive activity log system ghi tất cả hành động create/update/delete/restore/login/logout cho cả admin và customer.

Files đã tạo:

  • database/migrations/2026_05_16_000001_create_activity_logs_table.php
  • app/Models/ActivityLog.php
  • app/Services/ActivityLogger.php (singleton service)
  • app/Traits/LogsActivity.php (trait gắn vào Eloquent model)
  • app/Repositories/ActivityLog/ActivityLogRepositoryInterface.php
  • app/Repositories/ActivityLog/ActivityLogRepository.php
  • app/Http/Controllers/Api/Admin/ActivityLog/ActivityLogController.php

Models đã gắn trait LogsActivity: Customer, Order, Invoice, Transaction, Service, Payment, VirtualMachines, ModuleVmware, ModuleHosting, ModuleDomain, IpPool, ModuleSnapshot, DnsDomain, DnsRecord, DnsServer, ModuleIpAddress, Product, Bank, User, Ticket, Addon, Discount

Auth logging: Admin AuthController + Client ClientController đã log login/logout/login_failed/register

Customer endpoint logging (explicit calls, ngoài trait):

  • ClientController: register, login, logout
  • OrderController: storeOrder, payOrder, retryOrderProvisioning, updateClientServiceAutoRenew, renewService
  • VmController: powerOn, powerOff, changeIp, changePort, restart, changePassword
  • SnapshotController: store, revert, destroy
  • VmRebuildController: rebuild, upgradeAddons
  • ManualDepositController: prepare, cancel, confirm
  • TransactionController: handle (tạo VNPay), returnCallback (VNPay success)

API Endpoints (admin):

  • GET /api/v1/administrator/activity-logs — danh sách log với filter
  • GET /api/v1/administrator/activity-logs/modules — danh sách module names
  • GET /api/v1/administrator/activity-logs/{id} — chi tiết 1 log

Filter params: log_name, event, causer_type (admin/customer/system), causer_id, causer_name, subject_type, subject_id, ip_address, date_from, date_to, search, per_page

Why: User yêu cầu log tất cả hành động từ admin và customer để audit. How to apply: Khi thêm model mới, thêm use LogsActivity; vào model. Service ActivityLogger được resolve qua IoC container.