İzinler
Admin RBAC-lite izin anahtarları ve rol matrisi.
Admin panelindeki yetkilendirme RBAC-lite deseniyle çalışır: token'a izin listesi konmaz,
yalnızca rol ve (rol admin ise) admin_rolu taşınır. Bir isteğin belirli bir admin uca
erişip erişemeyeceği, backend'deki sabit bir izin anahtarı → rol matrisi üzerinden (requireIzin
middleware'i ile) kontrol edilir.
export function requireIzin(izin: Izin): MiddlewareHandler<AppOrtam> {
return async (c, next) => {
const kimlik = c.get('kimlik');
if (kimlik?.rol !== 'admin' || !iznVarMi(kimlik.admin_rolu, izin)) {
throw new AppError('YETKI_YOK', 'Bu işlem için yetkiniz yok', 403);
}
await next();
};
}
admin_rolu seti
owner | yonetici | muhasebe | destek | saha_operasyon | hukuk
İzin anahtarları → kapsadığı uç grupları
| İzin | Kapsam (özet) |
|---|---|
dosya:goruntule | Tazminat dosyalarını görüntüleme (liste/detay/evrak), admin erişim yolu |
dosya:durum-gecir | Dosya durumu değiştirme, evrak talebi/karar, sigortaya gönderme |
dosya:eksper-ata | Dosyaya eksper atama |
odeme:yonet | Tahsilat, tamirci fatura onayı, partner cüzdan çekim talebi kararı |
kullanici:yonet | Müşteri/personel yönetimi, araç/şirket onay-red, araç katalogu + TSB import, unvan listesi |
partner:yonet | Partner askıya alma, eksper hesabı açma |
partner:onayla | Partner başvurularını onaylama/reddetme |
yonlendirme:yonet | Yönlendirme (lead) durum yönetimi |
tarife:yonet | Hizmet bedeli, partner ücreti, çekici fiyatı, yakıt fiyatı, asgari ücret tarifeleri |
parametre:yonet | Hesaplama modüllerinin katsayı/parametre setleri (TRH-2010 hariç) |
denetim:goruntule | Denetim kayıtlarını görüntüleme |
rapor:goruntule | Özet rapor ve lead/satış takip raporları |
icerik:yonet | Hak/SSS/yasal içerik ve bilgi bankası yönetimi |
kariyer:yonet | İş ilanı CRUD, başvuru durum yönetimi |
bildirim:gonder | Admin panelden manuel push/SMS bildirim gönderimi |
eposta:yonet | Admin e-posta gelen kutusu (thread listesi/detay/yanıt), gönderim ve taslak yönetimi |
santral:goruntule | Çağrı listesi/detayı görüntüleme + çağrı başlatma (ses kaydı hariç) |
santral:ses-kaydi-dinle | Çağrı ses kaydını dinleme/indirme — KVKK gereği ayrı, dar izin |
mesajlasma:yonet | Omnichannel mesajlaşma paneli (WhatsApp/IG/FB/SMS/site konuşmaları, chatbot devri) |
Rol → izin matrisi
| İzin | owner | yonetici | muhasebe | destek | saha_operasyon | hukuk |
|---|---|---|---|---|---|---|
| dosya:goruntule | ✔* | ✔ | ✔ | ✔ | ✔ | ✔ |
| dosya:durum-gecir | ✔* | ✔ | — | ✔ | ✔ | ✔ |
| dosya:eksper-ata | ✔* | ✔ | — | — | ✔ | — |
| odeme:yonet | ✔* | — | ✔ | — | — | — |
| kullanici:yonet | ✔* | ✔ | ✔ | ✔ | — | — |
| partner:yonet | ✔* | ✔ | — | — | ✔ | — |
| partner:onayla | ✔* | ✔ | — | — | ✔ | — |
| yonlendirme:yonet | ✔* | ✔ | ✔ | — | — | — |
| tarife:yonet | ✔* | ✔ | ✔ | — | — | — |
| parametre:yonet | ✔* | ✔ | ✔ | — | — | — |
| denetim:goruntule | ✔* | ✔ | ✔ | — | — | ✔ |
| rapor:goruntule | ✔* | ✔ | ✔ | — | ✔ | ✔ |
| icerik:yonet | ✔* | ✔ | — | — | — | — |
| kariyer:yonet | ✔* | ✔ | — | — | — | — |
| bildirim:gonder | ✔* | ✔ | — | ✔ | ✔ | — |
| eposta:yonet | ✔* | ✔ | — | ✔ | — | — |
| santral:goruntule | ✔* | ✔ | — | ✔ | — | — |
| santral:ses-kaydi-dinle | ✔* | ✔ | — | — | — | — |
| mesajlasma:yonet | ✔* | ✔ | — | ✔ | — | — |
✔* = owner her izinden geçer (matristen bağımsız, kod seviyesinde).
Roller — özet
- owner — her şey + personel ekleme/
admin_roluatama (owner-only istisna). - yonetici —
odeme:yonethariç neredeyse tüm izinler (mali onay dört-göz ilkesiyle muhasebeye ayrılır). - muhasebe — tahsilat, fatura/çekim onayı, tarife/parametre yönetimi, denetim+rapor okuma.
- destek — dosya görüntüleme/durum geçirme, müşteri/araç/şirket onay işleri, bildirim gönderme.
- saha_operasyon — dosya + eksper atama, partner ağı yönetimi/onayı, rapor okuma, bildirim gönderme.
- hukuk — dosya görüntüleme/durum geçirme (dava/itiraz/tahkim), denetim + rapor okuma.
