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ırHassas 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
Related
- veritabani-sema — audit_logs tablosu
- rol-ve-yetki-mimarisi — yetkisiz erişim loglama