Skip to content

سجلات التدقيق

يوفر Doggy قدرة تدقيق كاملة لعمليات النظام عبر السلسلة الكاملة، حيث يسجل AuditService جميع العمليات الرئيسية وتُخزَّن في App\Entity\System\AuditLog.

نظرة عامة

يتكون نظام سجلات التدقيق من الأجزاء التالية:

  • كيان AuditLog (src/Entity/System/AuditLog.php): تخزين السجلات بشكل دائم
  • AuditService (src/Service/System/AuditService.php): خدمة تسجيل السجلات
  • نقطة دخول سجلات التدقيق في App\Controller\Admin\SecurityConfigController

المحتوى المُسجَّل

تحتوي كل سجل تدقيق على:

  • action: نوع العملية (login_success، login_failure، create، update، delete)
  • category: الفئة (security، business، system)
  • details: تفاصيل العملية (بصيغة JSON)
  • performer: المستخدم الذي نفّذ العملية

طريقة الاستخدام

php
use App\Service\System\AuditService;

class SomeService
{
    public function __construct(private AuditService $auditService) {}

    public function doSomething(): void
    {
        // 登录成功
        $this->auditService->log('login_success', 'security', [], $user);

        // 登录失败
        $this->auditService->log('login_failure', 'security', [
            'username' => $email,
            'error' => $exception->getMessage(),
        ]);

        // 数据操作
        $this->auditService->log('update', 'business', [
            'entity' => Employee::class,
            'id' => $employee->getId(),
            'changes' => $changes,
        ]);
    }
}

التكامل

تم دمج سجلات التدقيق تلقائيًا في العمليات الأمنية الرئيسية:

مصادقة تسجيل الدخول

يسجل App\Security\AppCustomAuthenticator تلقائيًا:

php
// 登录成功时
$this->auditService->log('login_success', 'security', [], $user);

// 登录失败时
$this->auditService->log('login_failure', 'security', [
    'username' => $email,
    'error' => $exception->getMessage(),
]);

المتطلبات الأمنية

  • لا يمكن الاطلاع على سجلات التدقيق إلا من قبل المدققين (ROLE_AUDITOR، عبر صلاحية AUDIT_VIEW الخاصة بـ ThreeOfficersVoter)
  • تُخزَّن السجلات في قاعدة البيانات مع دعم التتبع والتصدير
  • دعم البحث حسب النطاق الزمني والمستخدم ونوع العملية

مصدر مفتوح برخصة MIT | حقوق النشر © 2026 Doggy