Перейти к содержимому

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).

Наследование

По умолчанию дочерние ресурсы наследуют права от родителя. При проверке обходим цепочку от конкретного ресурса к корню и берём максимальный уровень среди всех найденных назначений. Явные права на дочернем ресурсе дополняют унаследованные, а не заменяют их.