Tmavý režim
Uživatelé (/users)
Správa uživatelů, jejich rolí v aplikacích a resource-level oprávnění.
GET /users — seznam uživatelů
Vrátí všechny uživatele v systému.
http
GET /api/users
Authorization: Bearer <token>Auth: JWT + AppAdmin nebo SuperAdmin
Response
json
{
"success": true,
"data": [
{
"email": "jan.novak@firma.cz",
"active": true,
"hasLoggedIn": true,
"createdAt": "2024-01-15T10:00:00.000Z"
},
{
"email": "petra.kratka@firma.cz",
"active": false,
"hasLoggedIn": false,
"createdAt": "2024-01-16T09:00:00.000Z"
}
]
}| Pole | Popis |
|---|---|
email | Primární identifikátor |
active | Aktivní / deaktivovaný účet |
hasLoggedIn | True pokud má uživatel alespoň jednu roli nebo oprávnění |
createdAt | Datum prvního zaregistrování |
POST /users — vytvoření uživatele
Předem vytvoří uživatele (admin může přidat uživatele dříve, než se poprvé přihlásí).
http
POST /api/users
Authorization: Bearer <token>
Content-Type: application/jsonAuth: JWT + AppAdmin
Request body
json
{
"email": "novy.uzivatel@firma.cz"
}Response
json
{
"success": true,
"data": {
"email": "novy.uzivatel@firma.cz",
"active": true,
"createdAt": "2024-01-20T12:00:00.000Z"
}
}GET /users/:email — detail uživatele
Vrátí kompletní přehled uživatele — všechny aplikace, role a resource overrides.
http
GET /api/users/jan.novak@firma.cz
Authorization: Bearer <token>Auth: JWT + AppAdmin nebo SuperAdmin
Response
json
{
"success": true,
"data": {
"email": "jan.novak@firma.cz",
"active": true,
"isSuperAdmin": false,
"applications": [
{
"code": "crm",
"name": "CRM Systém",
"isAppAdmin": false,
"roles": [
{
"id": 3,
"code": "editor",
"description": "Může editovat záznamy"
}
],
"resourceOverrides": [
{
"resourceType": "project",
"resourceId": "proj-42",
"permission": "projects.view",
"granted": true
}
]
}
]
}
}PATCH /users/:email/active — aktivace/deaktivace
Aktivuje nebo deaktivuje uživatelský účet.
http
PATCH /api/users/jan.novak@firma.cz/active
Authorization: Bearer <token>
Content-Type: application/jsonAuth: JWT + SuperAdmin
Request body
json
{
"active": false
}Response
json
{
"success": true,
"data": {
"email": "jan.novak@firma.cz",
"active": false
}
}Deaktivace
Deaktivovaný uživatel okamžitě ztratí přístup ke všem oprávněním. Permission check vrátí denied bez ohledu na role. Cache se nevyčistí automaticky — čekejte max 30 s nebo volejte /check/cache/clear.
GET /users/:email/apps/:appCode/roles — role uživatele
http
GET /api/users/jan.novak@firma.cz/apps/crm/roles
Authorization: Bearer <token>Auth: JWT + AppAdmin
Response
json
{
"success": true,
"data": [
{
"id": 3,
"code": "editor",
"description": "Může editovat záznamy",
"mdiIcon": "mdi-pencil"
}
]
}PUT /users/:email/apps/:appCode/roles — nastavení rolí
Nahradí kompletní sadu rolí uživatele v dané aplikaci.
http
PUT /api/users/jan.novak@firma.cz/apps/crm/roles
Authorization: Bearer <token>
Content-Type: application/jsonAuth: JWT + AppAdmin
Request body
json
{
"roleIds": [3, 5]
}Prázdné pole [] odebere všechny role.
Response
json
{
"success": true,
"data": {
"email": "jan.novak@firma.cz",
"appCode": "crm",
"roles": [3, 5]
}
}GET /users/:email/apps/:appCode/resources/:resourceType/:resourceId/permissions
Vrátí resource-level overrides pro konkrétní zdroj.
http
GET /api/users/jan.novak@firma.cz/apps/crm/resources/project/proj-42/permissions
Authorization: Bearer <token>Auth: JWT + AppAdmin
Response
json
{
"success": true,
"data": [
{
"permissionId": 5,
"code": "projects.view",
"granted": true
}
]
}PUT /users/:email/apps/:appCode/resources/:resourceType/:resourceId/permissions
Nastaví resource-level overrides pro konkrétní zdroj.
http
PUT /api/users/jan.novak@firma.cz/apps/crm/resources/project/proj-42/permissions
Authorization: Bearer <token>
Content-Type: application/jsonAuth: JWT + AppAdmin
Request body
json
{
"permissions": [
{ "permissionId": 5, "granted": true },
{ "permissionId": 6, "granted": false }
]
}Prázdné pole [] odebere všechny overrides pro daný zdroj.
Správa adminů
GET /users/admins/apps/:appCode — seznam app adminů
http
GET /api/users/admins/apps/crm
Authorization: Bearer <token>Auth: JWT (libovolný)
POST /users/admins/apps/:appCode — přidání app admina
http
POST /api/users/admins/apps/crm
Authorization: Bearer <token>
Content-Type: application/jsonAuth: JWT + SuperAdmin
json
{
"email": "appadmin@firma.cz"
}DELETE /users/admins/apps/:appCode/:email — odebrání app admina
http
DELETE /api/users/admins/apps/crm/appadmin@firma.cz
Authorization: Bearer <token>Auth: JWT + SuperAdmin
Správa superadminů
GET /users/superadmins/list
http
GET /api/users/superadmins/list
Authorization: Bearer <superadmin-token>POST /users/superadmins
http
POST /api/users/superadmins
Authorization: Bearer <superadmin-token>
Content-Type: application/json
{
"email": "superadmin@firma.cz"
}DELETE /users/superadmins/:email
http
DELETE /api/users/superadmins/superadmin@firma.cz
Authorization: Bearer <superadmin-token>WARNING
Posledního superadmina nelze odebrat. Systém musí mít vždy alespoň jednoho superadmina.