---
metadata:
  - name: generator
    content: Diplodoc Platform v5.66.1
  - property: og:type
    content: article
  - property: article:section
    content: Справочник API
  - property: og:title
    content: Изменить права доступа к дашборду
alternate:
  - https://yandex.ru/support/tracker/en/api/dashboards/update-dashboard-permissions.md
  - https://yandex.ru/support/tracker/ru/api/dashboards/update-dashboard-permissions.md
  - href: https://yandex.ru/support/tracker/ru/api/dashboards/update-dashboard-permissions.md
    type: text/markdown
    title: Markdown version
  - href: https://yandex.ru/support/tracker/ru/llms.txt?revision=r22077802
    rel: describedby
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/support/tracker/ru/llms.txt?revision=r22077802


# Изменить права доступа к дашборду

Запрос выдает или отзывает права доступа к дашборду. Для выполнения запроса требуется право `GRANT`.

<div class="request_example yfm-code-floating-container method_patch">
    <p>PATCH</p>
    <pre><code>https://api.tracker.yandex.net/v3/dashboards/{id_дашборда}/permissions?version=DASHBOARD_VERSION</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/_assets/style/methods.md -->

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

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

Перед выполнением запроса [получите доступ к API](https://yandex.ru/support/tracker/ru/api/access.md). Передайте текущую версию дашборда в параметре `version` или заголовке `If-Match`.

```json translate=no
PATCH /v3/dashboards/{id_дашборда}/permissions?version=DASHBOARD_VERSION
Host: api.tracker.yandex.net
Authorization: OAuth API_TOKEN
Content-Type: application/json
X-Org-ID или X-Cloud-Org-ID: ИДЕНТИФИКАТОР_ОРГАНИЗАЦИИ

{
  "grant": {
    "READ": {"users": [{"id": "USER_ID"}], "groups": [], "roles": []}
  },
  "revoke": {
    "WRITE": {"users": [], "groups": [{"id": "GROUP_ID"}], "roles": []}
  }
}
```

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

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

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

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

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

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


* <!-- source: ru/api/_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/_includes/org-id.md -->

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


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

{% cut "Ресурс" %}

#|
|| **Параметр** | **Описание** | **Тип данных** ||
|| id_дашборда | Идентификатор дашборда. | Число ||
|#

{% endcut %}

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

Передайте версию дашборда в параметре `version` или заголовке `If-Match`.

#|
|| **Параметр** | **Описание** | **Тип данных** ||
|| version | Текущая версия дашборда. Укажите, если не передали заголовок `If-Match`. | Число ||
|#

{% endcut %}

{% cut "Дополнительные заголовки" %}

#|
|| **Заголовок** | **Описание** ||
|| If-Match | Текущая версия дашборда в двойных кавычках, например `"4"`. Укажите, если не передали параметр `version`. ||
|#

{% endcut %}

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

#|
|| **Параметр** | **Описание** | **Тип данных** ||
|| grant | Права, которые нужно выдать. | Объект ||
|| revoke | Права, которые нужно отозвать. | Объект ||
|#

**Поля объектов** `grant` и `revoke`

#|
|| **Параметр** | **Описание** | **Тип данных** ||
|| READ | Право просмотра. | Объект ||
|| WRITE | Право изменения. | Объект ||
|| GRANT | Право управления доступом. | Объект ||
|#

**Поля объектов** `READ`, `WRITE` и `GRANT`

#|
|| **Параметр** | **Описание** | **Тип данных** ||
|| users | Пользователи с указанным правом. В каждом объекте укажите `id`. | Массив объектов ||
|| groups | Группы с указанным правом. В каждом объекте укажите `id`. | Массив объектов ||
|| roles | Системные роли с указанным правом. Передайте массив строк, например `["OWNER"]`. | Массив строк ||
|#

{% endcut %}

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

{% list tabs %}

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

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

    При успехе API возвращает обновленный объект прав доступа.

    ```json translate=no
    {
      "acl": {
        "READ": {
          "users": [],
          "groups": [
            {
              "self": "https://api.tracker.yandex.net/v3/groups/3",
              "id": "3",
              "display": "Все сотрудники"
            }
          ],
          "roles": []
        },
        "WRITE": {
          "users": [
            {
              "self": "https://api.tracker.yandex.net/v3/users/1234567890",
              "id": "1234567890",
              "display": "Пользователь"
            }
          ],
          "groups": [],
          "roles": [
            {
              "id": "OWNER",
              "name": "Владелец"
            }
          ]
        },
        "GRANT": {
          "users": [],
          "groups": [],
          "roles": [
            {
              "id": "OWNER",
              "name": "Владелец"
            }
          ]
        }
      }
    }
    ```

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

    #|
    || **Параметр** | **Описание** | **Тип данных** ||
    || acl | Действующие права доступа. | Объект ||
    || inheritedFrom | Источник унаследованных прав. Если права заданы на самом дашборде, поле отсутствует. | Объект ||
    |#

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

    #|
    || **Параметр** | **Описание** | **Тип данных** ||
    || READ | Субъекты с правом просмотра. | Объект ||
    || WRITE | Субъекты с правом изменения. Также получают право `READ`. | Объект ||
    || GRANT | Субъекты с правом управления доступом. | Объект ||
    |#

    **Поля объектов** `READ`, `WRITE` и `GRANT`

    #|
    || **Параметр** | **Описание** | **Тип данных** ||
    || users | Ссылки на пользователей. [Поля объекта пользователя](https://yandex.ru/support/tracker/ru/api/dashboards/create-dashboard.md#user). | Массив объектов ||
    || groups | Ссылки на группы с полями `self`, `id` и `display`. | Массив объектов ||
    || roles | Системные роли с полями `id` и `name`. | Массив объектов ||
    |#


    **Поля элементов массива** `groups`

    #|
    || **Параметр** | **Описание** | **Тип данных** ||
    || self | Адрес ресурса API группы. | Строка ||
    || id | Идентификатор группы. | Строка ||
    || display | Название группы. | Строка ||
    |#

    **Поля элементов массива** `roles`

    #|
    || **Параметр** | **Описание** | **Тип данных** ||
    || id | Идентификатор системной роли, например `OWNER`. | Строка ||
    || name | Название роли. | Строка ||
    |#

    {% endcut %}

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

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

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

    Некорректный формат тела запроса или заголовка `If-Match`, либо права дашборда наследуются.

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

    Нет права `GRANT` на дашборд.

    <!-- source: ru/api/_includes/answer-error-404.md -->
    404
    :   Запрошенный объект не был найден. Возможно, вы указали неверное значение идентификатора или ключа объекта.
    <!-- endsource: ru/api/_includes/answer-error-404.md -->

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

    <!-- source: ru/api/_includes/answer-error-422.md -->
    422 
    :   Ошибка валидации JSON, запрос отклонен.
    <!-- endsource: ru/api/_includes/answer-error-422.md -->

    Пользователь или группа не найдены.

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

    Не переданы ни `version`, ни `If-Match`.

{% endlist %}
