Tüm kullanıcıları ve yetkilerini yöneten güvenli sistem
Sistemdeki tüm kullanıcıları ve yetkilerini yönetmek için kapsamlı bir modül geliştirdik. Kim neye erişebilir, kim ne yapabilir - hepsi rol tabanlı yetkilendirme (RBAC) sistemi ile kontrol ediliyor.
Tam yetki
Yönetim yetkisi
İçerik düzenleme
Standart üye
İşlem gerçekleştiriliyor ve kullanıcıya sonuç gösteriliyor
403 Forbidden hatası, erişim reddediliyor
Bir kullanıcı admin paneline veya korumalı bir sayfaya erişmeye çalıştığında, sistem şu yetki kontrol sürecini işletiyor:
Sistem $user->roles ile kullanıcının rollerini çekiyor. model_has_roles pivot tablosu üzerinden Spatie Permission paketi bu ilişkiyi yönetiyor. Kullanıcı birden fazla role sahip olabilir.
$user->hasPermissionTo('songs.create') gibi kontroller yapılıyor. role_has_permissions tablosundan role ait yetkiler, model_has_permissions tablosundan direkt kullanıcıya atanmış yetkiler birleştiriliyor.
Laravel'in Gate::authorize() veya @can Blade direktifi ile yetki kontrolü yapılıyor. Yetkisiz erişimde 403 Forbidden hatası döndürülüyor ve kullanıcı erişim reddedildi sayfasına yönlendiriliyor.
Spatie Activity Log paketi ile tüm işlemler kaydediliyor. activity_log tablosuna causer_id (kim yaptı), subject_type (neyi etkiledi), description (ne yaptı) ve properties (eski/yeni değerler) yazılıyor.
Performans için yetkiler Redis'te cache'leniyor. Rol veya yetki güncellendiğinde php artisan permission:cache-reset ile cache temizleniyor. Bu sayede her istekte veritabanı sorgusu yapılmıyor.
Her istekte UpdateLastActivity middleware'i çalışıyor ve users.last_activity_at alanı güncelleniyor. Admin panelinde "son görülme" bilgisi bu alandan okunuyor. IP adresi de last_login_ip alanına kaydediliyor.
Rol tabanlı erişim kontrolü sistemi.
Şirketteki unvanlara göre oda kartları gibi
Kullanıcının sistemdeki görevi/pozisyonu.
Müdür, memur, stajyer gibi
Belirli bir işlemi yapabilme izni.
Şarkı ekleme, kullanıcı silme yetkisi
Kullanıcı işlemlerinin kaydı.
Kim, ne zaman, ne yaptı?
Rol Tabanlı Erişim Kontrolü