# Bayiler

Bayiler altında iki sayfa bulunur:

| Sayfa | Amaç |
|---|---|
| Bayiler listesi | `is_reseller=true` olarak işaretlenmiş tüm hesaplar, artı kota kullanımı (oluşturulan alt-hesap vs. izin verilen) |
| Bayi ACL paketleri | Bir bayinin neler yapabileceğini yöneten izin şablonları (her özellik üzerinde CRUD) |

Bir bayiye ACL paketi atanabilir; paketi yoksa kısıtsızdır. Uygulama sunucu tarafındadır: bayi oturumundan gelen istek, paketin kapattığı bir yeteneğe dokunuyorsa `403 PERMISSION_DENIED` ile reddedilir ve gövde hangi iznin engellediğini söyler. Kapsam, alt hesap yönetimi uçlarını ve bayinin kendi client panel yüzeyini (DNS, SSL, PHP, veritabanı, e-posta ve kutuların spam listeleri, FTP, dosya yöneticisi, cron, yedekler, log, metrik, phpMyAdmin ve webmail tek oturum açma, alt hesaba giriş) kapsar. Dar bir izin geniş olanı aşamaz — phpMyAdmin erişimi ayrıca veritabanı yönetimi izni ister. Bayinin paneli paketin bayraklarını profiliyle birlikte okur ve paketin vermediğini sunmaz: kapalı yüzeyin menü girişi çıkmaz, Yedekler'in **Uzak** sekmesi ve alt hesap güvenlik duvarı anahtarı `backup_remote` ile `modsecurity_manage` iznine bağlıdır, API Erişimi sayfası reddi sormadan gösterir. Bir paketi adlandırmak ile limitleri doğrudan yazmak aynı izindir: **hesap paket değişikliği** kapalıysa bayi ne `plan_id`'yi ne de alt hesabın paket limitlerini değiştirebilir.

**Shell Erişimi**, bayinin bir alt hesaba etkileşimli oturum kabuğu verip veremeyeceğini belirler (bkz. § 3). **ModSecurity**, bayinin alt hesap sayfasındaki güvenlik duvarı anahtarını yönetir. **API Erişimi**, bayinin client API üzerinde kendi API anahtarlarını üretip kullanabilmesini belirler (bkz. § API Erişimi → Bayi anahtarları); izin kapalıyken anahtar üretimi ve mevcut bir bayi anahtarıyla imzalanan her istek reddedilir.

**Client Paneline Giriş** (Bayiler listesindeki SSO düğmesi) bayinin kendi client panelini yeni sekmede o bayi olarak açar; operatörün kendi oturum çerezi tarayıcıda kalsa da oradaki alt hesap sayfaları çalışır.

Client paneli ACL'yi henüz okumuyor; bu yüzden bayi, reddedilen bir bölümü "izin yok" yerine boş liste olarak görür.

Askıdaki alt hesaplar bayinin alt hesap kotasında sayılmaya devam eder; bir yuvayı yalnız sonlandırma boşaltır. Bir bayinin hâlâ kullandığı ACL paketi silinemez (`409 PLAN_IN_USE`, bayi sayısıyla); üç sistem paketi düzenlenebilir ama silinemez; adı mevcut bir paket kimliğine denk gelen yeni paket `409 PLAN_EXISTS` ile reddedilir.

**Kullanılan endpoint'ler:** `GET /accounts?is_reseller=true`, `GET /resellers/acl-plans`, `POST /resellers/acl-plans`, `PUT /resellers/acl-plans/{id}`, `DELETE /resellers/acl-plans/{id}`, `PUT /accounts/{u}` (bayi bayrağı, limitler ve ACL paketi).

---
