Skip to content

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"
    }
  ]
}
PolePopis
emailPrimární identifikátor
activeAktivní / deaktivovaný účet
hasLoggedInTrue pokud má uživatel alespoň jednu roli nebo oprávnění
createdAtDatum 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/json

Auth: 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/json

Auth: 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/json

Auth: 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/json

Auth: 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/json

Auth: 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.

Atrea User API — interní dokumentace