---
metadata:
  - name: generator
    content: Diplodoc Platform v5.54.5
  - property: og:type
    content: article
  - property: article:section
    content: Справочник API
  - property: og:title
    content: Изменить настройки доступа сущности
  - property: article:tag
    content: Техническая инструкция
alternate:
  - https://yandex.ru/support/tracker/en/api-ref/entities/patch-access.md
  - https://yandex.ru/support/tracker/ru/api-ref/entities/patch-access.md
  - href: ru/api-ref/entities/patch-access.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/support/tracker/ru/llms.txt


# Изменить настройки доступа сущности

Запрос позволяет выдать или отозвать доступ к сущности — [цели](*goal), [проекте](*project) или [портфеле проектов](*portfolio).

<div class="request_example method_patch yfm-clipboard">
    <p>PATCH</p>
    <pre><code>https://api.tracker.yandex.net/v3/entities/&lt;тип_сущности>/&lt;id_сущности>/extendedPermissions</code></pre>
    <button class="yfm-clipboard-button"><svg width="16" height="16" viewBox="0 0 24 24" class="yfm-clipboard-icon" data-animation="15">
    <path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path>
    <path stroke="currentColor" fill="transparent" strokewidth="1.5" d="M9.5 13l3 3l5 -5" visibility="hidden">
        <animate id="visibileAnimation-15" attributeName="visibility" from="hidden" to="visible" dur="0.2s" fill="freeze" begin=""></animate>
        <animate id="hideAnimation-15" attributeName="visibility" from="visible" to="hidden" dur="1s" begin="visibileAnimation-15.end+1" fill="freeze"></animate>
    </path>
</svg>
</button>
</div>

<!-- source: ru/api-ref/_assets/style/methods.md -->

<!-- endsource: ru/api-ref/_assets/style/methods.md -->

{% note info "" %}

Чтобы настроить права доступа к сущности, также можно использовать запрос:
```
PATCH https://api.tracker.yandex.net/v3/entities/<тип_сущности>/<id_сущности>/permissions
```
Этот запрос отличается тем, что не позволяет задать параметр `permissionSources` — родительскую сущность, от которой текущая сущность должна наследовать права доступа. Формат тела запроса и ответа совпадает с форматом объекта `acl` — см. [описание](#acl-req).

{% endnote %}

## Формат запроса {#query}

Перед выполнением запроса [получите доступ к API](https://yandex.ru/support/tracker/ru/api-ref/access.md).

Чтобы изменить сущность, используйте HTTP-запрос с методом `PATCH`. В теле запроса укажите параметры в формате JSON.

```json translate=no
PATCH /v3/entities/<тип_сущности>/<id_сущности>/extendedPermissions
Host: api.tracker.yandex.net
Authorization: OAuth <OAuth-токен>
Content-Type: application/json
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": []
            }
        }
    }
}
```

<!-- source: ru/api-ref/_includes/headings.md -->
{% cut "Заголовки" %}

* `Host`: адрес узла, предоставляющего API.

* <!-- source: ru/api-ref/_includes/authorization.md -->
  `Authorization`: токен для авторизации в одном из форматов:

    - `OAuth <OAuth-токен>` при авторизации по протоколу OAuth 2.0. [Читать подробнее](https://yandex.ru/support/tracker/ru/api-ref/access.md#about_OAuth)

    - `Bearer <IAM-токен>` при авторизации с помощью IAM-токена — если к Трекеру привязана организация Yandex Identity Hub. [Читать подробнее](https://yandex.ru/support/tracker/ru/api-ref/access.md#iam-token)
  <!-- endsource: ru/api-ref/_includes/authorization.md -->

* <!-- source: ru/api-ref/_includes/content-type-json.md -->
  `Content-Type`: формат тела запроса. Должен иметь значение `application/json`.
  <!-- endsource: ru/api-ref/_includes/content-type-json.md -->


* <!-- source: ru/api-ref/_includes/org-id.md -->
  `X-Org-ID` или `X-Cloud-Org-ID`: идентификатор организации.

  - если к Трекеру привязана организация Яндекс 360 для бизнеса, используйте заголовок `X-Org-ID`,

  - если к Трекеру привязана организация Yandex Identity Hub, используйте заголовок `X-Cloud-Org-ID`.
  <!-- endsource: ru/api-ref/_includes/org-id.md -->

  <!-- source: ru/api-ref/_includes/org-id.md -->
  Чтобы узнать идентификатор организации, перейдите на страницу **Администрирование** → [**Организации**](https://tracker.yandex.ru/admin/orgs) и скопируйте значение поля **идентификатор**.
  <!-- endsource: ru/api-ref/_includes/org-id.md -->


{% endcut %}
<!-- endsource: ru/api-ref/_includes/headings.md -->

<!-- source: ru/api-ref/_includes/resource-entity.md -->
{% cut "Ресурс" %}

Параметр | Описание | Тип данных
-------- | -------- | ----------
\<тип_сущности> | Тип сущности:<ul><li>project — проект;</li><li>portfolio — портфель;</li><li>goal — цель</li></ul>| Строка
\<id_сущности> | Идентификатор сущности. Чтобы получить идентификатор, посмотрите [список сущностей](search-entities.md). В качестве идентификатора можно использовать параметр `id` или `shortId`.| Строка

{% endcut %}
<!-- endsource: ru/api-ref/_includes/resource-entity.md -->

{% cut "Параметры тела запроса" %}

**Дополнительные параметры**

#|
|| Параметр | Описание | Тип данных ||
|| [permissionSources](#entity-id) | Идентификатор родительской сущности, от которой текущая сущность должна наследовать права доступа.
* Чтобы включить наследование прав доступа, укажите идентификатор  основного портфеля (для портфеля или проекта) или родительской цели (для цели).
  Идентификатор родительской сущности указан в ответе на запрос [Получить настройки доступа сущности](https://yandex.ru/support/tracker/ru/api-ref/entities/get-access.md).
  Чтобы изменить родительскую сущность, используйте запрос [Изменить сущность](https://yandex.ru/support/tracker/ru/api-ref/entities/update-entity.md).
* Чтобы отключить наследование прав доступа, передайте значение `"permissionSources": []` |
Строка или массив строк ||
|| [acl](#acl-req) | Объект, содержащий информацию о типах доступа, которые требуется выдать или отозвать | Объект ||
|#

{% note warning "" %}

Если задано непустое значение `permissionSources`:
* Невозможно изменить права доступа с помощью параметра `acl`.
* Не действует параметр сущности `teamAccess` (см. [Дополнительные параметры сущности](https://yandex.ru/support/tracker/ru/api-ref/entities/about-entities.md#query-params)).

Чтобы изменить права доступа, сначала отключите наследование прав от родительской сущности.

{% endnote %}

**Поля объекта** `acl` {#acl-req}
Параметр | Описание | Тип данных
-------- | -------- | ----------
[grant](#grant-revoke) | Объект, содержащий информацию о типах доступа, которые требуется выдать пользователям, группам или ролям | Объект
[revoke](#grant-revoke) | Объект, содержащий информацию о типах доступа, которые требуется отозвать у пользователей, групп или ролей | Объект

**Поля объектов** `grant` и `revoke` {#grant-revoke}
Параметр | Описание | Тип данных
-------- | -------- | ----------
[READ](#read-write-req) | Объект с информацией о пользователях, группах и ролях, которым требуется выдать или отозвать доступ для просмотра сущности | Объект
[GRANT](#read-write-req) | Объект с информацией о пользователях, группах и ролях, которым требуется выдать или отозвать права для настройки доступа к сущности | Объект
[WRITE](#read-write-req) | Объект с информацией о пользователях, группах и ролях, которым требуется выдать или отозвать доступ для редактирования сущности | Объект

**Поля объектов** `READ`, `GRANT` и `WRITE` {#read-write-req}

#|
|| Параметр | Описание | Тип данных ||
|| users | Идентификаторы или логины пользователей, которым требуется выдать или отозвать данный тип доступа | Строка или массив строк ||
|| groups | Идентификаторы групп, которым требуется выдать или отозвать данный тип доступа | Число или массив чисел ||
|| roles | Список ролей сущности, которым требуется выдать или отозвать данный тип доступа:
* `AUTHOR` — Автор
* `OWNER` — Ответственный
* `CLIENT` — Заказчики
* `FOLLOWER` — Наблюдатели
* `MEMBER` — Участники
| Строка или массив строк ||
|#

{% endcut %}

>Пример 1: Включить наследование прав доступа к проекту от основного портфеля
>
>```json translate=no
>PATCH /v3/entities/project/655f8cc52*****/extendedPermissions
>Host: api.tracker.yandex.net
>Authorization: OAuth y0__xAbc******
>Content-Type: application/json
>X-Org-ID: 1234******
>
>{
>    "permissionSources": "67ffd7e3********"
>}
>```

>Пример 2: Отключить наследование прав доступа к проекту от основного портфеля и выдать права для редактирования проекта группе с идентификатором `2`.
>
>```json translate=no
>PATCH /v3/entities/project/655f8cc52*****/extendedPermissions
>Host: api.tracker.yandex.net
>Authorization: OAuth y0__xAbc******
>Content-Type: application/json
>X-Cloud-Org-ID: ab1c******
>
>{
>    "permissionSources": [],
>    "acl": {
>        "grant": {
>            "WRITE": {
>                "users": [],
>                "groups": 2,
>                "roles": []
>            }
>        }
>    }
>}
>```


>Пример 3: Выдать доступ для просмотра проекта пользователю с логином `username1`. Наследование прав доступа от основного портфеля должно быть предварительно отключено.
>
> ```json translate=no
> PATCH /v3/entities/project/655f8cc52*****/extendedPermissions
> Host: api.tracker.yandex.net
> Authorization: OAuth y0__xAbc******
> Content-Type: application/json
> X-Org-ID: 1234******
>
> {
>   "acl": {
>       "grant": {
>           "READ": {
>               "users": {"login": "username1"}
>           }
>       }
>   }
> }
> ```

> Пример 4: Отозвать права на управление доступом к проекту у пользователя с логином `username2`с помощью метода `https://api.tracker.yandex.net/v3/entities/<тип_сущности>/<id_сущности>/permissions`. Наследование прав доступа от основного портфеля должно быть предварительно отключено.
>
> ```json translate=no
> PATCH /v3/entities/project/655f8cc52*****/permissions
> Host: api.tracker.yandex.net
> Authorization: OAuth y0__xAbc******
> Content-Type: application/json
> X-Cloud-Org-ID: ab1c******
>
> {
>   "revoke": {
>       "GRANT": {
>           "users": "username2"
>       }
>     }
> }
> ```


## Формат ответа {#answer}

{% list tabs %}

- Запрос выполнен успешно

   <!-- source: ru/api-ref/_includes/answer-200.md -->
   В случае успешного выполнения запроса API возвращает ответ с кодом `200 OK`.
   <!-- endsource: ru/api-ref/_includes/answer-200.md -->

   Тело ответа содержит информацию о настройках доступа сущности в формате JSON.

   <!-- source: ru/api-ref/_includes/entity-access.md -->
   ```json translate=no
   {
       "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": []
       }
   }
   ```
   <!-- endsource: ru/api-ref/_includes/entity-access.md -->

   {% cut "Параметры ответа" %}

   <!-- source: ru/api-ref/_includes/entity-access.md -->
   Параметр | Описание | Тип данных
   -------- | -------- | ----------
   [acl](#acl) | Объект с информацией о пользователях, группах и ролях, которые имеют различные типы доступа к сущности | Объект
   [permissionSources](#entity-id) | Родительская сущность (основной портфель или родительская цель), от которой текущая сущность наследует права доступа | Объект
   [parentEntities](#parent) | Список родительских сущностей, от которых текущая сущность наследует права доступа | Объект
   <!-- endsource: ru/api-ref/_includes/entity-access.md -->

   **Поля объекта** `parentEntities` {#parent}

   <!-- source: ru/api-ref/_includes/entity-fields.md -->
   Параметр | Описание | Тип данных
   -------- | -------- | ----------
   [primary](#entity-id) | Основной портфель (для проектов и портфелей) или родительская цель (для целей) | Объект
   [secondary](#entity-id) | Для проектов и портфелей — список дополнительных портфелей<br>Для целей значение параметра всегда пусто | Массив объектов
   <!-- endsource: ru/api-ref/_includes/entity-fields.md -->

   **Поля объекта, содержащего данные сущности** {#entity-id}

   Параметры `permissionSources`, `primary` и `secondary` содержат объекты со следующими полями:

   <!-- source: ru/api-ref/_includes/entity-fields.md -->
   Параметр | Описание | Тип данных
   -------- | -------- | ----------
   self | Адрес ресурса API, который содержит информацию о сущности | Строка
   id | Идентификатор сущности | Строка
   display | Название сущности | Строка
   <!-- endsource: ru/api-ref/_includes/entity-fields.md -->

   **Поля объекта** `acl` {#acl}

   <!-- source: ru/api-ref/_includes/entity-access.md -->
   Параметр | Описание | Тип данных
   -------- | -------- | ----------
   [READ](#read-write) | Объект с информацией о пользователях, группах и ролях, которые имеют доступ для просмотра сущности | Объект
   [GRANT](#read-write) | Объект с информацией о пользователях, группах и ролях, которые могут изменять настройки доступа к сущности | Объект
   [WRITE](#read-write) | Объект с информацией о пользователях, группах и ролях, которые имеют доступ для редактирования сущности | Объект
   <!-- endsource: ru/api-ref/_includes/entity-access.md -->

   **Поля объектов** `READ`, `GRANT` и `WRITE` {#read-write}

   <!-- source: ru/api-ref/_includes/entity-access.md -->
   #|
   || Параметр | Описание | Тип данных ||
   || [users](#users) | Список пользователей, которые имеют данный тип доступа | Массив объектов ||
   || [groups](#groups) | Список групп, которые имеют данный тип доступа | Массив объектов ||
   || roles | Список ролей сущности, которые имеют данный тип доступа:
   * `AUTHOR` — Автор
   * `OWNER` — Ответственный
   * `CLIENT` — Заказчики
   * `FOLLOWER` — Наблюдатели
   * `MEMBER` — Участники
   | Массив строк ||
   |#
   <!-- endsource: ru/api-ref/_includes/entity-access.md -->

   **Поля объектов в массиве** `users` {#users}

   <!-- source: ru/api-ref/_includes/user.md -->
   Параметр | Описание | Тип данных
   ----- | ----- | -----
   self | Адрес ресурса API, который содержит информацию о пользователе. | Строка
   id | Идентификатор пользователя. | Строка
   display | Отображаемое имя пользователя. | Строка
   passportUid | Уникальный идентификатор аккаунта пользователя в организации Яндекс 360 для бизнеса и Яндекс ID. | Число
   cloudUid | Уникальный идентификатор пользователя в Yandex Identity Hub. | Строка
   <!-- endsource: ru/api-ref/_includes/user.md -->

   **Поля объектов в массиве** `groups` {#groups}

   <!-- source: ru/api-ref/_includes/group-short.md -->
   Параметр | Описание | Тип данных
   ----- | ----- | -----
   self | Адрес ресурса API, который содержит информацию о группе пользователей | Строка
   id | Идентификатор группы | Строка
   display | Отображаемое имя группы | Строка
   <!-- endsource: ru/api-ref/_includes/group-short.md -->

   {% endcut %}

- Запрос выполнен с ошибкой

   Если запрос не был успешно обработан, API возвращает ответ с кодом ошибки:

   <!-- source: ru/api-ref/_includes/answer-error-400.md -->
   400
   :   Один или несколько параметров запроса имеют недопустимое значение.
   <!-- endsource: ru/api-ref/_includes/answer-error-400.md -->

   <!-- source: ru/api-ref/_includes/answer-error-401.md -->
   401
   :   Пользователь не авторизован. Проверьте, были ли выполнены действия, описанные в разделе [Доступ к API](https://yandex.ru/support/tracker/ru/api-ref/access.md).
   <!-- endsource: ru/api-ref/_includes/answer-error-401.md -->

   <!-- source: ru/api-ref/_includes/answer-error-403.md -->
   403
   :   У вас не хватает прав на выполнение этого действия. Наличие прав можно перепроверить в интерфейсе Трекера — для выполнения действия при помощи API и через интерфейс требуются одинаковые права.
   <!-- endsource: ru/api-ref/_includes/answer-error-403.md -->

   <!-- source: ru/api-ref/_includes/answer-error-412.md -->
   412
   :   При редактировании объекта возник конфликт. Возможно, ошибка возникла из-за неправильно указанной версии изменений. 
   <!-- endsource: ru/api-ref/_includes/answer-error-412.md -->

   <!-- source: ru/api-ref/_includes/answer-error-423.md -->
   423
   :   Редактирование объекта заблокировано. Возможно, превышено допустимое значение параметра `version` — количество обновлений объекта. Максимальное значение версии составляет `10100` для роботов и `11100` для пользователей. 
   <!-- endsource: ru/api-ref/_includes/answer-error-423.md -->

   <!-- source: ru/api-ref/_includes/answer-error-428.md -->
   428
   :   Доступ к ресурсу отклонен. Проверьте, указаны ли все обязательные условия выполнения запроса. 
   <!-- endsource: ru/api-ref/_includes/answer-error-428.md -->


{% endlist %}

[*portfolio]: Портфель — это инструмент для объединения проектов и других портфелей по продукту, отделу или другому признаку.

Когда у вас несколько параллельных проектов, портфель позволяет взглянуть на них с высоты: как распределены ресурсы, где сроки подходят к концу.

[*project]: Проект — это набор задач из разных очередей, в которых работают над общим результатом. Это может быть запуск мобильного приложения или редизайн главной страницы сайта.

Проект помогает отслеживать: сколько задач сделано, сколько осталось, укладывается ли команда в сроки.

[*goal]: Цель — это стратегия развития или желаемый итог работы команды. Прогресс цели оценивают в количественных показателях. К цели можно привязать проекты, портфели и задачи, чтобы видеть, какая работа ведется для ее достижения.