Ana içeriğe atla

User

User, Azalt içindeki küresel (platform genelindeki) kullanıcıdır. Bir kullanıcı birden fazla organizasyona üye olabilir ancak aynı anda yalnızca bir geçerli organizasyon bağlamında çalışır.

Kısaca

  • Küresel kimlik: organizasyona bağlı değildir
  • Tek aktif bağlam: currentOrganizationId çalışma organizasyonunu belirler
  • Platform rolü: systemRole = "ADMIN" | "USER"
  • Organizasyon rolleri üyelikten gelir: bkz. Organization User
  • Profil: name, phone, locale, opsiyonel image (Media)

Veri Yapısı

// apps/azalt/src/server/db/types/auth.ts (özet)
interface User {
  id: string;
  email: string;           // Auth adapter'dan
  name?: string | null;    // Auth adapter'dan
  image?: string | null;   // mevcutsa imzalı URL (Media)
  phone: string | null;
  locale: string | null;   // "en" | "tr"; yanıtlarda varsayılan "en"
  systemRole: "ADMIN" | "USER"; // platform düzeyi rol
  currentOrganizationId: string | null; // aktif organizasyon
}

Geçerli Organizasyon Seçimi

  • Ayarlı değilse, en erken ACTIVE üyelik otomatik olarak atanır.
  • Kullanıcı, organization.switch ile açıkça değiştirebilir.
  • Mevcut organizasyon silinirse veya üyelik kaldırılırsa alan temizlenir; varsa bir sonraki ACTIVE üyelik seçilir.
  • Kullanıcının organizasyonu yoksa ilgili sorgular istemci hatası döndürür.

Profil ve Medya

  • Güncellenebilir alanlar: name, phone, locale.
  • E‑posta kimlik doğrulama tarafından yönetilir; profilden değiştirilemez.
  • Profil resimleri Media tablosunda (fieldName = "profilePicture") tutulur ve süreli imzalı URL’lerle sunulur.
// tRPC (apps/azalt/src/server/api/routers/user)
user.me(): { email, name, phone, locale }
user.updateProfile({ name?, phone?, locale?: "en" | "tr" })

Sistem ve Organizasyon Rolleri

  • systemRole platform düzeyi yönetim özelliklerini kontrol eder.
  • Organizasyon rolleri (Owner/Manager/Approver/Collector/Viewer) organizasyon bazında üyelikle atanır.

Sık Yapılan İşlemler

  • Profili görüntüleme/güncelleme (name/phone/locale)
  • Geçerli organizasyonu değiştirme (üye olduğu organizasyonlar arasından)
  • Davetleri kabul etme (kabul sonrası ACTIVE olur)

İpuçları ve Köşe Durumlar

  • Locale ayarlı değilse yanıtlarda "en" döner.
  • Kullanıcı bir organizasyondan kaldırıldığında currentOrganizationId anında temizlenir.
  • Organizasyon kullanıcı listesi, varsa profil resminin imzalı image URL’sini içerir.

İlgili Kavramlar

  • Organization User — üyelik, rol ve durum yönetimi
  • Organization User Site — üyelik için site düzeyi erişim