Tüm Sayfalar / 57 - Yetkilendirme
Sayfa 57 / 161
Erişim Kontrolü

Yetkilendirme

Kim neye erişebilir? Hangi kapıyı açabilir?

Biz Ne Yaptık?

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.

Super Admin

Her şeye erişir. Sistem ayarları, kullanıcı yönetimi.

Editör

İçerik ekler/düzenler. Şarkı, albüm yönetimi.

Premium Üye

Tüm şarkıları dinler. Reklamsız erişim.

7
Rol
42
İzin
30
Modül
100%
Kontrol

Arkada Ne Oluyor?

1

Kullanıcı Bir Sayfaya Gider

Örneğin admin paneline erişmek ister.

2

Middleware Devreye Girer

Gate ve Policy sınıfları kullanıcının yetkisini kontrol eder.

3

Rol ve İzin Karşılaştırması

Kullanıcının rolü, gerekli izinle eşleşiyor mu?

4

Erişim Verilir veya Engellenir

Yetki varsa sayfa açılır, yoksa 403 hatası gösterilir.

Yetkili Erişim

Sayfa normal şekilde yüklenir, kullanıcı içeriği görür.

Yetkisiz Erişim

"Bu sayfaya erişim yetkiniz yok" mesajı gösterilir.

Admin Panelden Ne Görebilirsiniz?

Rol Yönetimi

Ayarlar → Roller ve İzinler

İzin Ataması

Kullanıcılar → Detay → Rol Değiştir

Modül İzinleri

Her modül için ayrı izin tanımı

Erişim Logları

Kim hangi sayfaya ne zaman erişti?

Arkaplanda Neler Çalışıyor?

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:

1. Route Middleware

İstek geldiğinde auth ve role:admin middleware'leri sırayla çalışır. Kullanıcı giriş yapmamışsa login sayfasına yönlendirilir.

2. Rol Kontrolü

$user->roles ilişkisi ile kullanıcının rolleri çekilir. Spatie Permission paketi hasRole('admin') metoduyla kontrol yapar.

3. Permission Kontrolü

$user->can('edit-songs') ile spesifik izin kontrol edilir. role_has_permissions tablosunda rol-izin eşleşmesi aranır.

4. Policy Kontrolü

Model bazlı yetkilendirme için SongPolicy::update($user, $song) çağrılır. Kullanıcı şarkının sahibi mi kontrol edilir.

5. Gate Tanımları

Gate::define('access-admin', fn($user) => $user->is_admin) ile özel erişim kuralları tanımlanır. @can Blade direktifi ile kullanılır.

6. Erişim Reddi (403)

Yetki yoksa abort(403) çağrılır ve resources/views/errors/403.blade.php sayfası gösterilir.

Bu Sayfanın Anahtar Terimleri

Authorization

(Yetkilendirme)

Kullanıcının neye erişebileceğini belirleme. Otel odası kartı gibi.

Role (Rol)

(Kullanıcı Rolü)

Kullanıcının sistemdeki görevi. Admin, Editör, Üye gibi.

Permission

(Erişim İzni)

Belirli bir işlemi yapma hakkı. "Şarkı ekleyebilir" gibi.

403 Forbidden

(Erişim Engeli)

Yetkisiz erişim denemesinde gösterilen hata kodu.

Super Admin
Tam Yetki
7 Rol
42 Farklı İzin