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

Смена роли

Смена роли

POST https://gptunnel.ru/api/v1/access/changeRole

Назначает роль сотрудникам организации по логину — каждому логину своя роль. Запрос принимает массив пар { login, role } (до 25). Каждый элемент обрабатывается независимо: ошибка по одному не отменяет обработку остальных. При повторе одного логина берётся первое вхождение. В ответе — сколько ролей изменено, сколько с ошибкой и перечень логинов с ошибками (причина по каждому).

Роли и права

В организации три роли (сверху вниз — от большего к меньшему):

  • owner (владелец) — высшая роль;
  • admin (администратор);
  • member (участник) — низшая роль.

Права на смену роли зависят от роли создателя API-ключа (ключ действует с его ролью). Действовать можно над сотрудниками с ролью равной или ниже своей (но не над собой):

Роль создателя ключаКого может менятьКакие роли может назначать
ownerowner, admin, memberowner / admin / member
adminadmin, memberadmin / member
memberникого (нет доступа)

Дополнительно:

  • Равная или ниже. Менять роль сотрудника с более высокой ролью нельзя — такой логин вернётся с ошибкой forbidden. Роль равную своей менять можно: owner может менять другого owner, а admin — другого admin.
  • Нельзя менять свою роль — логин владельца ключа вернётся с ошибкой forbidden.
  • admin не может назначать роль owner. Элемент с role = owner от не-владельца вернётся с ошибкой forbidden (остальные элементы обработаются).
  • Повторная установка той же роли безопасна (идемпотентна) и засчитывается в changed.

Headers

ПараметрТипОписание
Authorization*stringAPI ключ

Параметры запроса

ПараметрТипОписание
items*object[]Массив пар «логин + роль» (от 1 до 25). Каждый элемент: { login, role }
items[].login*stringЛогин сотрудника
items[].role*stringНазначаемая роль этому логину: owner | admin | member

В ответе: changed — сколько ролей изменено (в т.ч. логинов, уже имевших эту роль), failed — сколько с ошибкой, failedLogins — перечень логинов с ошибкой (причина и пояснение по каждому).

Причины ошибок в failedLogins:

Причины ошибок

ПараметрТипОписание
not_foundstringСотрудника с таким логином нет в организации
forbiddenstringРоль цели выше вашей, либо это ваш собственный логин
errorstringНепредвиденная ошибка при обработке этого сотрудника

Пример запроса

Окно терминала
curl --request POST \
--url https://gptunnel.ru/api/v1/access/changeRole \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"items": [
{ "login": "ivanov", "role": "admin" },
{ "login": "petrov", "role": "member" }
]
}'

Пример ответа

{
"code": 0,
"changed": 1,
"failed": 1,
"failedLogins": [
{
"login": "petrov",
"reason": "not_found",
"message": "Employee not found in the organization."
}
]
}