GetAllUsers

## Kullanıcıları Listele Token'daki yetki kapsamına göre sigorta şirketi ve/veya acente kapsamındaki kullanıcıları sayfalı (paginated) olarak listeler. Kullanıcı adı, e-posta ve aktiflik durumuna göre filtreleme ile dinamik sıralama desteği sunar. --- ## Endpoint Bilgisi | Özellik | Değer | | --- | --- | | **HTTP Metodu** | `GET` | | **URL** | `/api/offline/users` | | **Content-Type** | — | | **Yetkilendirme** | `Authorization: Bearer {token}` | ### Yetkilendirme Rolleri Çağıranın aşağıdaki rollerden birine sahip olması gerekir: | Rol | Erişim Kapsamı | | --- | --- | | `InsuranceCompanyAPIAdmin` | Token'daki yetki kapsamı dahilindeki kullanıcıları listeleyebilir | | `Supervizor` | Token'daki yetki kapsamı dahilindeki kullanıcıları listeleyebilir | > **Not:** Ek olarak `Read` policy yetkisi gereklidir. --- ## Query Parametreleri | Parametre | Tip | Zorunlu | Varsayılan | Açıklama | Doğrulama Kuralları | | --- | --- | --- | --- | --- | --- | | `Page` | `integer` | Hayır | `1` | Sayfa numarası | 1'den büyük veya eşit olmalı: `"Page must be greater than or equal to 1."` | | `PageSize` | `integer` | Hayır | `50` | Sayfa başı kayıt sayısı | 1–200 arasında olmalı: `"PageSize must be between 1 and 200."` | | `SortOrder` | `string` | Hayır | `desc` | Sıralama yönü: `asc` veya `desc` | Geçerli değer: `"SortOrder must be 'asc' or 'desc'."` | | `SortBy` | `string` | Hayır | `fullName` | Sıralama alanı | Geçerli değerler: `fullName`, `userName`, `email`, `lastLogin`: `"SortBy must be one of: fullName, userName, email, lastLogin."` | | `UserName` | `string` | Hayır | — | Kullanıcı adına göre filtre (`Contains`) | Min 3, Maks 256 karakter | | `Email` | `string` | Hayır | — | E-postaya göre filtre (`Contains`) | Min 3, Maks 256 karakter | | `IsActive` | `boolean` | Hayır | `null` | Aktiflik durumu filtresi | Geçerli değerler: `true`, `false` | ### Aktiflik Filtresi Davranışı API'deki `IsActive` alanı, veritabanı tarafındaki `Disabled` alanına dönüştürülür: | `IsActive` Değeri | Uygulanan Koşul | | --- | --- | | `true` | Aktif kullanıcılar (`Disabled == false`) | | `false` | Pasif kullanıcılar (`Disabled == true`) | | `null` / boş | Durum filtresi uygulanmaz | ### Sıralama Davranışı - `SortOrder`: yalnızca `asc` veya `desc` kabul eder; geçersiz değer validation hatası üretir. - `SortBy`: Boş gelirse varsayılan olarak `fullName` kullanılır. - Eşitlik durumunda `Id` alanı ile ikincil sıralama (tie-break) uygulanır. ### Yetki Kapsamı Yetki kapsamı, çağıranın sahip olduğu role göre belirlenir. Kullanıcı **company** veya **agent** rollerinden en az birine sahip değilse istek reddedilir. - Kullanıcı company ya da agent rolünde değilse **`403 Forbidden`** döner. - Hata kodu: `OfflineUsers.AgentOrCompanyRoleRequired` - Kullanıcı **company rolüne** sahipse, token'daki `InsuranceCompanyIds` claim'i okunur. - Liste boşsa **`403 Forbidden`** döner. - Hata kodu: `OfflineUsers.InsuranceCompanyNotFound` - Liste doluysa ilgili şirketlere bağlı kullanıcılar filtrelenir. - Kullanıcı **agent rolüne** sahipse, token'daki `AgentIds` claim'i okunur. - Liste boşsa **`403 Forbidden`** döner. - Hata kodu: `OfflineUsers.AgentNotFound` - Liste doluysa ilgili acentelere bağlı kullanıcılar filtrelenir. - Kullanıcı her iki role de sahipse iki filtre birlikte uygulanır. --- ## Hata Yanıtları | HTTP Kodu | Hata Kodu | Mesaj | Açıklama | | --- | --- | --- | --- | | `403` | `OfflineUsers.AgentOrCompanyRoleRequired` | — | Kullanıcı company ya da agent rolünde değil | | `403` | `OfflineUsers.InsuranceCompanyNotFound` | — | Company rolündeki kullanıcının token'ında geçerli şirket ataması bulunamadı | | `403` | `OfflineUsers.AgentNotFound` | — | Agent rolündeki kullanıcının token'ında geçerli acente ataması bulunamadı | --- ## Yanıt Formatı #### PagedData Alanları | Alan | Tip | Açıklama | | --- | --- | --- | | `TotalCount` | `integer` | Toplam kayıt sayısı | | `Page` | `integer` | Mevcut sayfa | | `Size` | `integer` | Sayfa boyutu | | `TotalPage` | `integer` | Toplam sayfa sayısı | | `HasNextPage` | `boolean` | Sonraki sayfa var mı | | `HasPreviousPage` | `boolean` | Önceki sayfa var mı | | `Items` | `array` | Kullanıcı listesi | #### UserDTO Alanları | Alan | Tip | Açıklama | | --- | --- | --- | | `Id` | `string` | Kullanıcı kimliği | | `FullName` | `string` | Ad soyad | | `UserName` | `string` | Kullanıcı adı | | `Email` | `string` | E-posta adresi | | `EmailConfirmed` | `boolean` | E-posta doğrulanmış mı | | `Disabled` | `boolean` | Kullanıcı pasif mi | | `LastLogin` | `datetime` | Son giriş tarihi | | `UserRoles` | `array` | Rol adları | | `AssignedRoles` | `string` | Rol adlarının virgülle birleşmiş hali |

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Response headers

Content-Typestring

Response

OK

Errors

400
Bad Request Error
403
Forbidden Error