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)
| Rol | Slug | Türkçe |
|---|---|---|
| SUPER_ADMIN | super-admin | Süper Admin |
| IT | it | IT |
| EDITOR | editor | Editör |
| SALES | sales | Satış |
| DATA | data | Data |
| FINANCE | finance | Finans |
| PY | py | Portföy |
| INTERN | intern | Stajyer |
| AGENT | agent | Çağrı |
| SALES_SUPPORT | sales_support | Satış 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ı.
Related
- api-domain-model — User ve Customer modelleri
- api-b2b-vs-b2c — B2B ve B2C sistem ayrımı