Kim neye erişebilir? Hangi kapıyı açabilir?
Kullanıcılar giriş yaptıktan sonra hangi sayfalara erişebileceklerini kontrol ediyoruz. Admin mi? Editör mü? Premium üye mi? Her rol için farklı yetkiler tanımladık.
Her şeye erişir. Sistem ayarları, kullanıcı yönetimi.
İçerik ekler/düzenler. Şarkı, albüm yönetimi.
Tüm şarkıları dinler. Reklamsız erişim.
Örneğin admin paneline erişmek ister.
Gate ve Policy sınıfları kullanıcının yetkisini kontrol eder.
Kullanıcının rolü, gerekli izinle eşleşiyor mu?
Yetki varsa sayfa açılır, yoksa 403 hatası gösterilir.
Sayfa normal şekilde yüklenir, kullanıcı içeriği görür.
"Bu sayfaya erişim yetkiniz yok" mesajı gösterilir.
Ayarlar → Roller ve İzinler
Kullanıcılar → Detay → Rol Değiştir
Her modül için ayrı izin tanımı
Kim hangi sayfaya ne zaman erişti?
Bir sayfaya erişmeye çalıştığınızda sistem yetkilerinizi kontrol eder ve erişim izni verir veya reddeder. İşte bu süreçte gerçekleşen teknik adımlar:
İstek geldiğinde auth ve role:admin middleware'leri sırayla çalışır. Kullanıcı giriş yapmamışsa login sayfasına yönlendirilir.
$user->roles ilişkisi ile kullanıcının rolleri çekilir. Spatie Permission paketi hasRole('admin') metoduyla kontrol yapar.
$user->can('edit-songs') ile spesifik izin kontrol edilir. role_has_permissions tablosunda rol-izin eşleşmesi aranır.
Model bazlı yetkilendirme için SongPolicy::update($user, $song) çağrılır. Kullanıcı şarkının sahibi mi kontrol edilir.
Gate::define('access-admin', fn($user) => $user->is_admin) ile özel erişim kuralları tanımlanır. @can Blade direktifi ile kullanılır.
Yetki yoksa abort(403) çağrılır ve resources/views/errors/403.blade.php sayfası gösterilir.
(Yetkilendirme)
Kullanıcının neye erişebileceğini belirleme. Otel odası kartı gibi.
(Kullanıcı Rolü)
Kullanıcının sistemdeki görevi. Admin, Editör, Üye gibi.
(Erişim İzni)
Belirli bir işlemi yapma hakkı. "Şarkı ekleyebilir" gibi.
(Erişim Engeli)
Yetkisiz erişim denemesinde gösterilen hata kodu.