Organization User
Organization User, bir kullanıcının belirli bir organizasyondaki üyeliğini temsil eder. Bu kayıt org düzeyi rol (RBAC), üyelik durumu ve site atamalarını içerir.Kısaca
- (organizationId, userId) çifti başına tek üyelik
- Rol (RBAC) yetkileri belirler; site atamaları kapsamı sınırlar
- Durum yaşam döngüsü:
INVITED → ACTIVE → INACTIVE tagsalanı hafif sınıflandırma/filtreleme için
Roller (RBAC)
- Viewer: atandığı site(ler)i yalnızca görüntüler
- Collector: atandığı site(ler)de veri girip düzenleyebilir
- Approver: atandığı site(ler)de gönderimleri onaylayabilir
- Manager: atandığı site kapsamı içinde kullanıcı/site/form yönetimi
- Owner: organizasyonun tam yönetimi
Üyelik Durumu
- INVITED (varsayılan): davet oluşturuldu; kabul edilene kadar sınırlı
- ACTIVE: aktif üyelik; rol ve kapsam geçerli
- INACTIVE: devre dışı; erişim yok
currentOrganizationId boşsa bu org atanabilir.
Kısıtlar ve Bütünlük
- Her organizasyon için tek üyelik:
(organizationId, userId) - Üyelik silindiğinde site atamaları (OrganizationUserSite) FK ile birlikte temizlenir (cascade)
- Yetki kuralları gereği sahiplik/rol değişikliklerinde korumalar uygulanır
Site Erişimi (ABAC)
Site erişimi, Organization User Site bağlantıları ile atanır. Etkin erişim, doğrudan atanan site(ler)in tüm alt site(ler)ini de kapsar (rekürsif sorgu ile). Kök site atanırsa tüm organizasyona erişim verilmiş olur.Sık Yapılan İşlemler
- Organizasyon kullanıcılarını listeleme (çağıranın site erişimiyle filtrelenir)
- Rol ve site atamaları ile kullanıcı davet etme
- Bir kullanıcının rolünü ve/veya site atamalarını güncelleme
- Çoklu kullanıcı için site atamalarını toplu güncelleme (yerine koy/ekle/kaldır)
Güvenlik ve Filtreleme
- Okumalar kısıtlıdır: viewer/collector, kendi erişebildiği site ağacındaki kullanıcıları görür; manager/owner tüm üyeleri görür.
- Yazma işlemleri yalnızca manager/owner tarafından ve kendi erişim kapsamındaki site’lar için yapılabilir.
- Row Level Security (RLS) ve yardımcı korumalar bağlam güvenliğini sağlar.
İpuçları ve Köşe Durumlar
- Site ataması olmayan kullanıcılar listelerde görünebilir (manager/owner için); etkin erişimleri boştur.
- Kök siteye atamak tüm organizasyona erişim verir (kök + alt site’ler).
- Toplu işlemlerde
replaceidempotent güncellemeler için önerilir;add/removeartımlı değişim içindir.
İlgili Kavramlar
- User — küresel kimlik ve profil
- Organization User Site — üyelik için site düzeyi erişim

