Skip to content

Uživatelé (/users)

Správa uživatelů, jejich rolí v aplikacích a resource-level oprávnění.

Kanonický administrátorský detail

Panel používá jako jediný zdroj pravdy:

http
GET /api/admin/users/{url-encoded-email}/detail
Authorization: Bearer <panel-token>

Vyžaduje efektivní oprávnění users.view v aplikaci auth (globální superadmin má nadále bypass). Změnové operace jsou oddělené: users.settings, users.notifications a users.reset-password.

Odpověď obsahuje:

  • globální settings (locale, theme, timezone);
  • skutečný globální login/activity souhrn;
  • applications pro všechny registrované aplikace se stabilními poli appCode a appName;
  • efektivní přístup, efektivní role a případné preference;
  • nejvýše 50 auditních událostí od nejnovější.

Existence profilu, role nebo preference se nikdy nepovažuje za přihlášení. Samotné otevření admin detailu žádnou aktivitu nezapisuje.

Globální nastavení se mění partial updatem:

http
PUT /api/admin/users/{url-encoded-email}/settings
Authorization: Bearer <superadmin-token>
Content-Type: application/json

{
  "locale": "cs",
  "theme": "dark",
  "timezone": "Europe/Prague"
}

locale musí být v /admin/languages; null obnoví systémový jazyk. timezone musí být platná IANA timezone; null obnoví systémové pásmo. Změna vloží auditní událost settings_update.

Resetovací e-mail se bezpečně vyžádá u ZITADELu:

http
POST /api/admin/users/{url-encoded-email}/password-reset
Authorization: Bearer <panel-token>
Content-Type: application/json

{}

Odpověď je pouze { "sent": true }. API nikdy nevrací resetovací kód, heslo ani odkaz; ZITADEL pošle standardní notifikaci přes aktivní HTTP e-mail provider. Endpoint vyžaduje users.reset-password.


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,
      "createdAt": "2024-01-15T10:00:00.000Z"
    },
    {
      "email": "petra.kratka@firma.cz",
      "active": false,
      "createdAt": "2024-01-16T09:00:00.000Z"
    }
  ]
}
PolePopis
emailPrimární identifikátor
activeAktivní / deaktivovaný účet
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 — starší přehled přístupů

Vrátí starší přehled rolí a resource overrides. Pro admin obrazovku, globální nastavení a aktivitu používejte výhradně kanonický GET /admin/users/:email/detail.

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