Изменить настройки доступа сущности
Запрос позволяет выдать или отозвать доступ к сущности — цели, проекту или портфелю проектов. Подробнее о настройках доступа читайте в разделе Как настроить права доступа в проектах, портфелях и целях.
PATCH
https://api.tracker.yandex.net/v3/entities/<тип_сущности>/<id_сущности>/extendedPermissions
Чтобы настроить права доступа к сущности, также можно использовать запрос:
PATCH https://api.tracker.yandex.net/v3/entities/<тип_сущности>/<id_сущности>/permissions
Этот запрос отличается тем, что не позволяет задать параметр permissionSources
— родительскую сущность, от которой текущая сущность должна наследовать права доступа. Формат тела запроса и ответа совпадает с форматом объекта acl
— см. описание.
Формат запроса
Перед выполнением запроса получите доступ к API.
Чтобы изменить сущность, используйте HTTP-запрос с методом PATCH
. В теле запроса укажите параметры в формате JSON.
PATCH /v3/entities/<тип_сущности>/<id_сущности>/extendedPermissions
Host: api.tracker.yandex.net
Authorization: OAuth <OAuth-токен>
X-Org-ID или X-Cloud-Org-ID: <идентификатор_организации>
{
"permissionSources": [],
"acl": {
"grant": {
"READ": {
"users": ["username1", "username2"],
"groups": [],
"roles": []
},
"WRITE": {
"users": [],
"groups": [1, 2],
"roles": []
},
"GRANT": {
"users": [],
"groups": [],
"roles": []
}
},
"revoke": {
"READ": {
"users": {"uid": 123********},
"groups": 3,
"roles": []
},
"WRITE": {
"users": [],
"groups": [],
"roles": "FOLLOWER"
},
"GRANT": {
"users": [],
"groups": [],
"roles": []
}
}
}
}
Заголовки
-
Host
: адрес узла, предоставляющего API. -
Authorization
: токен для авторизации в одном из форматов:-
OAuth <OAuth-токен>
при авторизации по протоколу OAuth 2.0. Читать подробнее -
Bearer <IAM-токен>
при авторизации с помощью IAM-токена — если к Трекеру привязана организация Yandex Cloud Organization. Читать подробнее
-
-
X-Org-ID
илиX-Cloud-Org-ID
: идентификатор организации.-
Используйте заголовок
X-Org-ID
, если к Трекеру привязана организация Яндекс 360 для бизнеса. -
Используйте заголовок
X-Cloud-Org-ID
, если к Трекеру привязана организация Yandex Cloud Organization.
Чтобы узнать идентификатор организации, перейдите на страницу Администрирование → Организации и скопируйте значение поля идентификатор.
-
Ресурс
Параметр | Описание | Тип данных |
---|---|---|
<тип_сущности> | Тип сущности:
|
Строка |
<id_сущности> | Идентификатор сущности. Чтобы получить идентификатор, посмотрите список сущностей. В качестве идентификатора можно использовать параметр id или shortId . |
Строка |
Параметры тела запроса
Дополнительные параметры
Параметр |
Описание |
Тип данных |
Идентификатор родительской сущности, от которой текущая сущность должна наследовать права доступа.
|
Строка или массив строк |
|
Объект, содержащий информацию о типах доступа, которые требуется выдать или отозвать |
Объект |
Если задано непустое значение permissionSources
:
- Невозможно изменить права доступа с помощью параметра
acl
. - Не действует параметр сущности
teamAccess
(см. Дополнительные параметры сущности).
Чтобы изменить права доступа, сначала отключите наследование прав от родительской сущности.
Поля объекта acl
Параметр | Описание | Тип данных |
---|---|---|
grant | Объект, содержащий информацию о типах доступа, которые требуется выдать пользователям, группам или ролям | Объект |
revoke | Объект, содержащий информацию о типах доступа, которые требуется отозвать у пользователей, групп или ролей | Объект |
Поля объектов grant
и revoke
Параметр | Описание | Тип данных |
---|---|---|
READ | Объект с информацией о пользователях, группах и ролях, которым требуется выдать или отозвать доступ для просмотра сущности | Объект |
GRANT | Объект с информацией о пользователях, группах и ролях, которым требуется выдать или отозвать права для настройки доступа к сущности | Объект |
WRITE | Объект с информацией о пользователях, группах и ролях, которым требуется выдать или отозвать доступ для редактирования сущности | Объект |
Поля объектов READ
, GRANT
и WRITE
Параметр |
Описание |
Тип данных |
users |
Идентификаторы или логины пользователей, которым требуется выдать или отозвать данный тип доступа |
Строка или массив строк |
groups |
Идентификаторы групп, которым требуется выдать или отозвать данный тип доступа |
Число или массив чисел |
roles |
Список ролей сущности, которым требуется выдать или отозвать данный тип доступа:
|
Строка или массив строк |
Пример 1: Включить наследование прав доступа к проекту от основного портфеля
PATCH /v3/entities/project/655f8cc52*****/extendedPermissions Host: api.tracker.yandex.net Authorization: OAuth <OAuth-токен> X-Org-ID или X-Cloud-Org-ID: <идентификатор_организации> { "permissionSources": "67ffd7e3********" }
Пример 2: Отключить наследование прав доступа к проекту от основного портфеля и выдать права для редактирования проекта группе с идентификатором
2
.
PATCH /v3/entities/project/655f8cc52*****/extendedPermissions Host: api.tracker.yandex.net Authorization: OAuth <OAuth-токен> X-Org-ID или X-Cloud-Org-ID: <идентификатор_организации> { "permissionSources": [], "acl": { "grant": { "WRITE": { "users": [], "groups": 2, "roles": [] } } } }
Пример 3: Выдать доступ для просмотра проекта пользователю с логином
username1
. Наследование прав доступа от основного портфеля должно быть предварительно отключено.
PATCH /v3/entities/project/655f8cc52*****/extendedPermissions Host: api.tracker.yandex.net Authorization: OAuth <OAuth-токен> X-Org-ID или X-Cloud-Org-ID: <идентификатор_организации> { "acl": { "grant": { "READ": { "users": {"login": "username1"} } } } }
Пример 4: Отозвать права на управление доступом к проекту у пользователя с логином
username2
с помощью методаhttps://api.tracker.yandex.net/v3/entities/<тип_сущности>/<id_сущности>/permissions
. Наследование прав доступа от основного портфеля должно быть предварительно отключено.
PATCH /v3/entities/project/655f8cc52*****/permissions Host: api.tracker.yandex.net Authorization: OAuth <OAuth-токен> X-Org-ID или X-Cloud-Org-ID: <идентификатор_организации> { "revoke": { "GRANT": { "users": "username2" } } }
Формат ответа
В случае успешного выполнения запроса API возвращает ответ с кодом 200 OK
.
Тело ответа содержит информацию о настройках доступа сущности в формате JSON.
{
"acl": {
"READ": {
"users": [
{
"self": "https://api.tracker.yandex.net/v3/users/11********",
"id": "11********",
"display": "Имя Фамилия",
"passportUid": 11********
}
],
"groups": [
{
"self": "https://api.tracker.yandex.net/v3/groups/1",
"id": "1",
"display": "Группа 1"
}
],
"roles": []
},
"GRANT": {
"users": [],
"groups": [
{
"self": "https://api.tracker.yandex.net/v3/groups/2",
"id": "2",
"display": "Группа 2"
}
],
"roles": [
"AUTHOR",
"OWNER"
]
},
"WRITE": {
"users": [],
"groups": [
{
"self": "https://api.tracker.yandex.net/v3/groups/3",
"id": "3",
"display": "Группа 3"
}
],
"roles": [
"CLIENT",
"AUTHOR",
"FOLLOWER",
"OWNER",
"MEMBER"
]
}
},
"permissionSources": [
{
"self": "https://api.tracker.yandex.net/v3/entities/portfolio/67ffd7e3********",
"id": "67ffd7e3********",
"display": "My portfolio"
}
],
"parentEntities": {
"primary": {
"self": "https://api.tracker.yandex.net/v3/entities/portfolio/67ffd7e3********",
"id": "67ffd7e3********",
"display": "My portfolio"
},
"secondary": []
}
}
Параметры ответа
Параметр | Описание | Тип данных |
---|---|---|
acl | Объект с информацией о пользователях, группах и ролях, которые имеют различные типы доступа к сущности | Объект |
permissionSources | Родительская сущность (основной портфель или родительская цель), от которой текущая сущность наследует права доступа | Объект |
parentEntities | Список родительских сущностей, от которых текущая сущность наследует права доступа | Объект |
Поля объекта parentEntities
Параметр | Описание | Тип данных |
---|---|---|
primary | Основной портфель (для проектов и портфелей) или родительская цель (для целей) | Объект |
secondary | Для проектов и портфелей — список дополнительных портфелей Для целей значение параметра всегда пусто |
Массив объектов |
Поля объекта, содержащего данные сущности
Параметры permissionSources
, primary
и secondary
содержат объекты со следующими полями:
Параметр | Описание | Тип данных |
---|---|---|
self | Адрес ресурса API, который содержит информацию о сущности | Строка |
id | Идентификатор сущности | Строка |
display | Название сущности | Строка |
Поля объекта acl
Параметр | Описание | Тип данных |
---|---|---|
READ | Объект с информацией о пользователях, группах и ролях, которые имеют доступ для просмотра сущности | Объект |
GRANT | Объект с информацией о пользователях, группах и ролях, которые могут изменять настройки доступа к сущности | Объект |
WRITE | Объект с информацией о пользователях, группах и ролях, которые имеют доступ для редактирования сущности | Объект |
Поля объектов READ
, GRANT
и WRITE
Параметр |
Описание |
Тип данных |
Список пользователей, которые имеют данный тип доступа |
Массив объектов |
|
Список групп, которые имеют данный тип доступа |
Массив объектов |
|
roles |
Список ролей сущности, которые имеют данный тип доступа:
|
Массив строк |
Поля объектов в массиве users
Параметр | Описание | Тип данных |
---|---|---|
self | Адрес ресурса API, который содержит информацию о пользователе. | Строка |
id | Идентификатор пользователя. | Строка |
display | Отображаемое имя пользователя. | Строка |
passportUid | Уникальный идентификатор аккаунта пользователя в организации Яндекс 360 для бизнеса и Яндекс ID. | Число |
cloudUid | Уникальный идентификатор пользователя в Yandex Cloud Organization. | Строка |
Поля объектов в массиве groups
Параметр | Описание | Тип данных |
---|---|---|
self | Адрес ресурса API, который содержит информацию о группе пользователей | Строка |
id | Идентификатор группы | Строка |
display | Отображаемое имя группы | Строка |
Если запрос не был успешно обработан, API возвращает ответ с кодом ошибки:
- 400
- Один или несколько параметров запроса имеют недопустимое значение.
- 401
- Пользователь не авторизован. Проверьте, были ли выполнены действия, описанные в разделе Доступ к API.
- 403
- У вас не хватает прав на выполнение этого действия. Наличие прав можно перепроверить в интерфейсе Трекера — для выполнения действия при помощи API и через интерфейс требуются одинаковые права.
- 412
- При редактировании объекта возник конфликт. Возможно, ошибка возникла из-за неправильно указанной версии изменений.
- 423
- Редактирование объекта заблокировано. Возможно, превышено допустимое значение параметра
version
— количество обновлений объекта. Максимальное значение версии составляет10100
для роботов и11100
для пользователей.
- 428
- Доступ к ресурсу отклонен. Проверьте, указаны ли все обязательные условия выполнения запроса.