Proje: Okul Platform · Hub: Okul Platform — Domain

Kullanılan Kütüphane

spatie/laravel-permission — User model HasRoles trait’ini kullanır.

Admin Rolleri (RoleType enum)

RolSlugTürkçe
SUPER_ADMINsuper-adminSüper Admin
ITitIT
EDITOReditorEditör
SALESsalesSatış
DATAdataData
FINANCEfinanceFinans
PYpyPortföy
INTERNinternStajyer
AGENTagentÇağrı
SALES_SUPPORTsales_supportSatış Destek

SUPER_ADMIN Davranışı

AppServiceProvider’da gate:before tanımlı:

Gate::before(function ($user) {
    if ($user->hasRole(RoleType::SUPER_ADMIN->value)) {
        return true;  // Tüm policy'leri bypass eder
    }
    return null;
});

Rol Bazlı İzinler (özet)

SALES:

  • Okul görme/ekleme/düzenleme
  • Lead görme
  • Takvim etkinlikleri (CRUD)
  • Okul etkileşimleri (CRUD)
  • Satış istatistikleri

DATA:

  • Okul CRUD + silme
  • Makale CRUD + silme
  • Burs, kolej, etiket CRUD
  • Galeri CRUD
  • Okul etkileşimleri
  • Kampüs görme/düzenleme
  • Lisans/program CRUD (üniversite)

FINANCE:

  • Ödeme CRUD (tekrar etme dahil)
  • Müşteri (Customer) CRUD
  • Sözleşme (CustomerAgreement) CRUD
  • Müşteri kullanıcısı (CustomerUser) izleme
  • Kredi kartı CRUD

Kullanıcı Türü (UserGroupType)

Admin panel → user_group_type = 'admin'
Okul portal (B2B) → user_group_type = 'customer'
Veli/öğrenci (B2C) → user_group_type = 'user'

CustomerUser Rolleri (B2B)

B2B müşteri kullanıcılarının kendi rolleri var: CustomerUserSchool üzerinde has_lead_access, can_receive_leads_sms, can_receive_leads_mail field’ları.