API: Права доступа и группы
API: Права доступа и группы
Права — /api/v1/permissions
Требуется авторизация.
Типы ресурсов
| resourceType | Наследование |
|---|---|
node | Родительские узлы до корня |
list | Список → узел → предки узла |
list_item | Элемент → список → узел → предки |
library | Библиотека → узел → предки |
page | Страница → узел → предки |
file | Файл → библиотека → узел → предки |
attachment | Вложение → элемент → список → узел → предки |
GET /permissions?resourceType={type}&resourceId={uuid}
Список явных прав на ресурс. Требуется право edit на ресурс.
POST /permissions
Назначить право:
{ "resourceType": "list", "resourceId": "uuid", "principalType": "group", "principalId": "uuid", "permissionLevel": "view"}Уровни: view, add, edit, delete.
DELETE /permissions/:id
Удалить назначение.
GET /permissions/check?resourceType={type}&resourceId={uuid}
Эффективные права текущего пользователя с учётом наследования по цепочке ресурсов.
Ответ 200:
{ "success": true, "data": { "permissionLevel": "edit", "canView": true, "canAdd": true, "canEdit": true, "canDelete": false }}Если доступа нет, permissionLevel будет null, все флаги — false.
Группы — /api/v1/groups
Только portal_admin.
| Метод | Путь | Описание |
|---|---|---|
| GET | /groups | Список групп |
| POST | /groups | Создать группу |
| GET | /groups/:id | Группа с участниками |
| PATCH | /groups/:id | Обновить |
| DELETE | /groups/:id | Удалить |
| POST | /groups/:id/members | { "userId": "uuid" } |
| DELETE | /groups/:id/members/:userId | Удалить участника |
Пользователи — GET /api/v1/users?q=
Список пользователей для назначения прав (только admin).
Наследование
По умолчанию дочерние ресурсы наследуют права от родителя. При проверке обходим цепочку от конкретного ресурса к корню и берём максимальный уровень среди всех найденных назначений. Явные права на дочернем ресурсе дополняют унаследованные, а не заменяют их.