Proje: OkulUp API · Hub: OkulUp API — Decisions

Auditable Trait — Otomatik Değişiklik Loglama

Karar

Hassas modellerde (User, Attendance, Payment, DocumentRequest) Auditable trait kullanılır. Eloquent model event’lerini hook’layarak created/updated/deleted tüm değişiklikler audit_logs tablosuna yazılır.

Neleri Loglar

// created: yeni kayıt tüm attribute'ları
// updated: sadece dirty (değişen) alanlar + eski değerleri
// deleted: soft delete, eski attribute'ları
// user_id: auth()->id() (kim değiştirdi)
// ip_address, user_agent: request'ten alınır

Hassas Alanlar Maskelenir

password, remember_token, tc_no — log’a yazılmaz.

Ayrıca: Yetkisiz Erişim Loglama

AuthorizationService::logUnauthorizedAccess() — doğrudan AuditLog::create() çağırır + Log::warning().
Bu iki farklı loglama mekanizması var: otomatik değişiklik logu (trait) + manuel güvenlik logu (service).

Neden Trait

  • Tüm modellere aynı davranışı tutarlı şekilde ekler
  • Controller veya service’e eklenmesi gerekmiyor
  • bootAuditable() convention ile Eloquent event’leri hook’lanır