Users API
API reference pro endpointy správy uživatelů.
Přehled
Endpointy správy uživatelů umožňují administrátorům vytvářet, zobrazovat, aktualizovat a mazat uživatelské účty.
Oprávnění: Všechny endpointy vyžadují roli Admin.
Endpointy
GET /users
Seznam všech uživatelů s paginací.
Oprávnění: Admin
Query parametry:
page(volitelné): Číslo stránky (výchozí: 1)pageSize(volitelné): Počet položek na stránku (výchozí: 50)
Response:
{
"success": true,
"data": {
"users": [
{
"id": 1,
"email": "[email protected]",
"name": "User Name",
"role": "Loader",
"two_factor_enabled": false,
"created_at": 1704067200
}
],
"pagination": {
"total": 10,
"page": 1,
"pageSize": 50,
"totalPages": 1
}
}
}
GET /users/search
Vyhledání uživatelů podle emailu nebo jména s volitelným filtrem podle role.
Oprávnění: Admin
Query parametry:
q(volitelné): Vyhledávací dotaz (email nebo jméno)role(volitelné): Filtr podle role (Loader, Producer, Admin)page(volitelné): Číslo stránky (výchozí: 1)pageSize(volitelné): Počet položek na stránku (výchozí: 50)
Příklad:
GET /users/search?q=john&role=Loader&page=1&pageSize=10
Response:
{
"success": true,
"data": {
"users": [
{
"id": 1,
"email": "[email protected]",
"name": "John Doe",
"role": "Loader",
"two_factor_enabled": false,
"created_at": 1704067200
}
],
"pagination": {
"total": 1,
"page": 1,
"pageSize": 10,
"totalPages": 1
}
}
}
GET /users/:id
Získá detail uživatele.
Oprávnění: Admin
Response:
{
"success": true,
"data": {
"id": 1,
"email": "[email protected]",
"name": "User Name",
"role": "Loader",
"two_factor_enabled": true,
"two_factor_method": "TOTP",
"has_google": false,
"phone_number": null,
"created_at": 1704067200,
"passkey_count": 2
}
}
POST /users
Vytvoří nového uživatele.
Oprávnění: Admin
Request:
{
"email": "[email protected]",
"password": "SecurePassword123!",
"name": "New User",
"role": "Loader"
}
Response:
{
"success": true,
"data": {
"id": 2,
"email": "[email protected]",
"name": "New User",
"role": "Loader",
"created_at": 1704067200
}
}
Error Response (email již existuje):
{
"success": false,
"error": "USER_EXISTS",
"message": "Uživatel s tímto emailem již existuje"
}
PUT /users/:id
Aktualizuje informace o uživateli.
Oprávnění: Admin
Request:
{
"email": "[email protected]",
"name": "Updated Name",
"password": "NewPassword123!",
"role": "Producer"
}
Poznámka: Všechna pole jsou volitelná. Pouze poskytnutá pole budou aktualizována.
Response:
{
"success": true,
"data": {
"id": 1,
"email": "[email protected]",
"name": "Updated Name",
"role": "Producer"
}
}
Error Response (nelze změnit roli posledního Admina):
{
"success": false,
"error": "VALIDATION_ERROR",
"message": "Nelze změnit roli posledního Admina"
}
Error Response (nelze změnit svou vlastní roli z Admin):
{
"success": false,
"error": "VALIDATION_ERROR",
"message": "Nemůžete změnit svou vlastní roli z Admin"
}
DELETE /users/:id
Smaže uživatele.
Oprávnění: Admin
Response:
{
"success": true,
"data": {
"message": "User deleted successfully",
"deleted_user": {
"id": 1,
"email": "[email protected]"
}
}
}
Error Response (nelze smazat posledního Admina):
{
"success": false,
"error": "VALIDATION_ERROR",
"message": "Nelze smazat posledního Admina"
}
Business pravidla
Správa rolí
- Ochrana posledního Admina: Nelze smazat nebo změnit roli posledního Admin uživatele
- Sebeo ochrana: Admin nemůže změnit svou vlastní roli z Admin na jinou roli
- Platné role: Pouze
Loader,ProduceraAdminjsou platné
Validace emailu
- Email musí být ve validním formátu
- Email je case-insensitive (uložen v lowercase)
- Email musí být jedinečný
Validace hesla
- Minimálně 8 znaků
- Maximálně 128 znaků
- Nesmí být v seznamu běžných hesel
- Validováno pomocí funkce
validatePassword()
Kódy chyb
VALIDATION_ERROR- Neplatný vstup (formát emailu, síla hesla, role)USER_EXISTS- Email již existujeEMAIL_EXISTS- Email již použit jiným uživatelemNOT_FOUND- Uživatel nenalezenFORBIDDEN- Nedostatečná oprávnění (není Admin)INTERNAL_ERROR- Chyba serveru
Související témata
- Autentizační API - Autentizace uživatelů
- Uživatelský průvodce - Začínáme - Uživatelsky orientovaný průvodce