Skip to content

Role & Oprávnění

Správa rolí a oprávnění per-aplikaci. Vyžaduje AppAdmin nebo SuperAdmin.


Oprávnění (Permissions)

GET /applications/:appCode/permissions — seznam oprávnění

Vrátí stromovou strukturu oprávnění (s children).

http
GET /api/applications/crm/permissions
Authorization: Bearer <admin-token>

Response

json
{
  "success": true,
  "data": [
    {
      "id": 1,
      "code": "documents",
      "description": "Správa dokumentů",
      "type": "binary",
      "groupName": "Dokumenty",
      "parentPermissionId": null,
      "children": [
        {
          "id": 2,
          "code": "documents.read",
          "type": "binary",
          "groupName": "Dokumenty",
          "parentPermissionId": 1,
          "children": []
        },
        {
          "id": 3,
          "code": "documents.edit",
          "type": "tiered",
          "groupName": "Dokumenty",
          "parentPermissionId": 1,
          "children": []
        }
      ]
    }
  ]
}

POST /applications/:appCode/permissions — vytvoření oprávnění

http
POST /api/applications/crm/permissions
Authorization: Bearer <admin-token>
Content-Type: application/json
json
{
  "code": "documents.edit",
  "description": "Editace dokumentů",
  "type": "tiered",
  "groupName": "Dokumenty",
  "parentPermissionId": 1
}
PoleTypPovinnéPopis
codestringUnikátní kód v rámci aplikace
type"binary" | "tiered"Typ oprávnění
descriptionstringPopis oprávnění
groupNamestringSkupina pro UI zobrazení
parentPermissionIdnumberID nadřazeného oprávnění (UI tree)

PUT /applications/:appCode/permissions/:id — aktualizace

http
PUT /api/applications/crm/permissions/3
Authorization: Bearer <admin-token>
Content-Type: application/json
json
{
  "description": "Nový popis",
  "groupName": "Dokumenty v2"
}

code a type nelze měnit po vytvoření.

DELETE /applications/:appCode/permissions/:id — smazání

http
DELETE /api/applications/crm/permissions/3
Authorization: Bearer <admin-token>

WARNING

Smazání oprávnění odebere všechna přiřazení tohoto oprávnění rolím.


Role

GET /applications/:appCode/roles — seznam rolí

http
GET /api/applications/crm/roles
Authorization: Bearer <admin-token>

Response

json
{
  "success": true,
  "data": [
    {
      "id": 1,
      "code": "viewer",
      "description": "Může číst záznamy",
      "mdiIcon": "mdi-eye",
      "createdAt": "2024-01-10T08:00:00.000Z"
    },
    {
      "id": 2,
      "code": "editor",
      "description": "Může editovat záznamy",
      "mdiIcon": "mdi-pencil",
      "createdAt": "2024-01-10T08:05:00.000Z"
    }
  ]
}

GET /applications/:appCode/roles/:id — detail role s oprávněními

http
GET /api/applications/crm/roles/2
Authorization: Bearer <admin-token>

Response

json
{
  "success": true,
  "data": {
    "id": 2,
    "code": "editor",
    "description": "Může editovat záznamy",
    "mdiIcon": "mdi-pencil",
    "permissions": [
      {
        "id": 2,
        "code": "documents.read",
        "type": "binary",
        "accessLevel": "allowed"
      },
      {
        "id": 3,
        "code": "documents.edit",
        "type": "tiered",
        "accessLevel": "edit"
      }
    ]
  }
}

POST /applications/:appCode/roles — vytvoření role

http
POST /api/applications/crm/roles
Authorization: Bearer <admin-token>
Content-Type: application/json
json
{
  "code": "manager",
  "description": "Manažer — plný přístup",
  "mdiIcon": "mdi-account-supervisor"
}
PoleTypPovinnéPopis
codestringUnikátní kód role v aplikaci
descriptionstringPopis role
mdiIconstringMaterial Design Icons název (pro UI)

PUT /applications/:appCode/roles/:id — aktualizace role

http
PUT /api/applications/crm/roles/2
Authorization: Bearer <admin-token>
Content-Type: application/json
json
{
  "description": "Aktualizovaný popis",
  "mdiIcon": "mdi-pencil-box"
}

DELETE /applications/:appCode/roles/:id — smazání role

http
DELETE /api/applications/crm/roles/2
Authorization: Bearer <admin-token>

WARNING

Smazání role odebere tuto roli všem uživatelům, kteří ji mají přiřazenou.


Přiřazení oprávnění roli

PUT /applications/:appCode/roles/:id/permissions

Nahradí kompletní sadu oprávnění role. Pošlete celý seznam — co nepošlete, to se odebere.

http
PUT /api/applications/crm/roles/2/permissions
Authorization: Bearer <admin-token>
Content-Type: application/json

Request body

json
{
  "permissions": [
    { "permissionId": 1, "accessLevel": "allowed" },
    { "permissionId": 2, "accessLevel": "edit" },
    { "permissionId": 3, "accessLevel": "view" }
  ]
}
PolePovinnéValidní hodnoty
permissionIdID oprávnění ze stejné aplikace
accessLevel"allowed" (binary), "edit" nebo "view" (tiered)

Prázdné pole [] odebere všechna oprávnění role.

Response

json
{
  "success": true,
  "data": {
    "roleId": 2,
    "permissions": [
      { "permissionId": 1, "accessLevel": "allowed" },
      { "permissionId": 2, "accessLevel": "edit" }
    ]
  }
}

Pravidla a omezení

  • Kód oprávnění musí být unikátní v rámci aplikace
  • Kód role musí být unikátní v rámci aplikace
  • accessLevel pro binary oprávnění musí být "allowed"
  • accessLevel pro tiered oprávnění musí být "edit" nebo "view"
  • parentPermissionId musí ukazovat na oprávnění stejné aplikace
  • Smazání oprávnění nebo role je nevratné

Doporučené konvence pojmenování

# Oprávnění — tečkovaná hierarchie
contacts.read
contacts.edit
contacts.delete
reports.view
reports.export
admin.access

# Role — popisné názvy
viewer
editor
manager
admin

Atrea User API — interní dokumentace