Ana içeriğe atla

Documentation Index

Fetch the complete documentation index at: https://docs.azalt.co/llms.txt

Use this file to discover all available pages before exploring further.

Organization User Site

Bu bağ (junction) tablo, bir üyeliği (Organization User) bir veya daha fazla Site ile ilişkilendirir ve ayrıntılı site tabanlı erişimi sağlar.
// apps/azalt/src/server/db/types/organization.ts (özet)
interface OrganizationUserSite {
  id: string;
  organizationUserId: string; // OrganizationUser.id
  siteId: string;             // Site.id
  createdAt: Date;
  updatedAt: Date;
}

Kısaca

  • Doğrudan atamaları saklar (üyelik → site)
  • Etkin erişim = atanan site(ler) + tüm alt site(ler)
  • Kök site ataması tüm organizasyona erişim verir
  • (organizationUserId, siteId) çifti tektir; silmeler cascade ile temizlenir

Erişim Nasıl Hesaplanır?

  • Doğrudan atamalar burada tutulur (assignedSiteIds).
  • Etkin erişim, atanan site(ler)in tüm alt site(ler)ini de kapsar (rekürsif CTE ile hesaplanır).
  • Kök site ataması, organizasyondaki tüm site’lara erişim sağlar.

Kısıtlar ve Bütünlük

  • (organizationUserId, siteId) çifti tektir (yinelenen atamayı önler).
  • Silme/güncelleme işlemlerinde ilişkiler otomatik temizlenir (cascade).
  • Soft-delete edilmiş site’ler listeleme sorgularında filtrelenir.

Sık Yapılan İşlemler

  • Davet sırasında başlangıç site atamaları
  • Üyenin site listesini güncelleme (tam değiştirme)
  • Çoklu kullanıcı için toplu site güncellemeleri (yerine koy / ekle / kaldır)
// tRPC (apps/azalt/src/server/api/routers/organization)
organizations.updateUserSites({ userId, assignedSiteIds })
organizations.bulkUpdateUserSites({ userIds, siteIds, operation: "replace" | "add" | "remove" })

Okuma Kalıpları

  • Kullanıcı listeleri, her üye için assignedSites alanını döndürür (listeleme ve gösterim kolaylığı).
  • Erişim kontrolleri, alt site’ler dahil edilerek hesaplanan accessibleSiteIds üzerinden yapılır.
  • Kök site, arayüz listelerinde şeffaflık için çoğunlukla “Organization” olarak gösterilir.

Güvenlik

  • Site atamalarını yalnızca Manager ve Owner güncelleyebilir.
  • Tüm kontroller, işlemi yapan kullanıcının kendi erişebildiği site kapsamı ile sınırlandırılır.

İpuçları ve Köşe Durumlar

  • Herhangi bir ataması olmayan kullanıcıların etkin site erişimi yoktur; ancak yönetim listelerinde görünebilirler.
  • Toplu işlemlerde idempotent güncelleme için replace, artımlı değişiklik için add/remove tercih edin.

İlgili Kavramlar

  • Organization User — üyelik ve rol
  • Site — organizasyon içindeki hiyerarşik lokasyonlar