---
metadata:
  - name: generator
    content: Diplodoc Platform v5.63.0
alternate:
  - https://vibe.sourcecraft.dev/portal/docs/en/sourcecraft/operations/bind.md
  - https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/operations/bind.md
  - href: https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/operations/bind.md
    type: text/markdown
    title: Markdown version
  - href: https://vibe.sourcecraft.dev/portal/docs/ru/llms.txt
    rel: describedby
---
> **Documentation Index:** Fetch the complete configuration index at https://vibe.sourcecraft.dev/portal/docs/ru/llms.txt

<!-- source: ru/_includes/sourcecraft/security-bind.md -->
# Назначить роль пользователю в SourceCraft

<!-- source: ru/_includes/sourcecraft/security-intro.md -->
Доступ к сервису SourceCraft регулируется путем назначения прав пользователям в [организациях](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md#org) и [репозиториях](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md#repos).
<!-- endsource: ru/_includes/sourcecraft/security-intro.md -->

Вы можете назначить [роли](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/index.md#roles-list) пользователям на уровне [организации](#org), [проекта](#project) или конкретного [репозитория](#repo).

Для нового пользователя можно указать роль на уровне организации в [приглашении](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/invite.md).

## Назначить роль пользователю в организации {#org}

{% note warning %}

Для назначения роли пользователю в организации у вас должна быть роль не ниже [Администратор организации](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/index.md#organization-manager-admin).

{% endnote %}

1. Откройте [главную страницу](https://sourcecraft.dev) SourceCraft.
1. На вкладке ![image](../../_assets/console-icons/house.svg) **Домой** перейдите в раздел ![image](../../_assets/console-icons/briefcase.svg) **Организации**.
1. Выберите организацию, в которой вы хотите назначить роль пользователю.
1. На странице организации в разделе ![image](../../_assets/console-icons/person-nut-hex.svg) **Люди и роботы** перейдите в секцию ![image](../../_assets/console-icons/person.svg) **Участники и роли**.
1. Напротив пользователя, которому хотите назначить роль, в столбце **Участники и роли** нажмите ![image](../../_assets/console-icons/sliders.svg).
1. Отметьте ![image](../../_assets/console-icons/check.svg) роли, которые хотите назначить пользователю.
1. Нажмите **Применить**.

{% note tip %}

Вы можете назначать роли в организации сразу группе пользователей. Подробнее на странице [Команды в SourceCraft](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/teams.md).

{% endnote %}

## Назначить роль пользователю в проекте {#project}

<!-- source: ru/_includes/sourcecraft/project-binding-role.md -->
{% note info %}

Чтобы назначать или удалять роли пользователей в [проекте](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md#projects), вам нужна роль не ниже [Ответственный за проект](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/index.md#src-projects-maintainer) на уровне проекта или организации.

{% endnote %}
<!-- endsource: ru/_includes/sourcecraft/project-binding-role.md -->

<!-- source: ru/_includes/sourcecraft/project-role-note.md -->
[Роли](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/index.md#src-roles), назначенные пользователю в проекте, действуют во всех репозиториях проекта.
<!-- endsource: ru/_includes/sourcecraft/project-role-note.md -->

<!-- source: ru/_includes/sourcecraft/project-add-member.md -->
1. Откройте [главную страницу](https://sourcecraft.dev) SourceCraft.
1. На вкладке ![image](../../_assets/console-icons/house.svg) **Домой** перейдите в раздел ![image](../../_assets/console-icons/briefcase.svg) **Организации** и выберите организацию.
1. В секции ![image](../../_assets/console-icons/layout-tabs.svg) **Ваша мастерская** перейдите в раздел ![image](../../_assets/console-icons/folders.svg) **Проекты**.
1. Справа от нужного проекта нажмите ![image](../../_assets/console-icons/sliders.svg) и перейдите в раздел ![image](../../_assets/console-icons/person.svg) **Участники и роли**.
1. В правом верхнем углу нажмите ![image](../../_assets/console-icons/plus.svg) **Добавить участника**.
1. Выберите пользователя и его роль в проекте.

    {% note warning %}

    Вы можете добавить в проект только пользователей, которые состоят в организации.

    {% endnote %}

1. Нажмите **Добавить**.
<!-- endsource: ru/_includes/sourcecraft/project-add-member.md -->

## Назначить роль пользователю в репозитории {#repo}

{% note warning %}

Для назначения роли пользователю в репозитории у вас должна быть роль не ниже [Ответственный за репозиторий](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/index.md#src-repositories-maintainer).

Если выдать роль в репозитории пользователю, не состоящему в организации-владельце, то пользователь будет также приглашен в организацию. В таком случае вам понадобится роль [Администратор организации](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/index.md#organization-manager-admin).

{% endnote %}

<iframe width="640" height="360" src="https://runtime.strm.yandex.ru/player/video/vplvf5ebzkkqjjzokanj?autoplay=0&mute=0" allow="autoplay; fullscreen; picture-in-picture; encrypted-media" frameborder="0" scrolling="no"></iframe>

1. Откройте [главную страницу](https://sourcecraft.dev) SourceCraft.
1. На вкладке ![image](../../_assets/console-icons/house.svg) **Домой** в секции ![image](../../_assets/console-icons/layout-tabs.svg) **Ваша мастерская** перейдите в раздел ![image](../../_assets/console-icons/archive.svg) **Репозитории**.
1. Выберите репозиторий, в котором вы хотите назначить роль пользователю.
1. На странице репозитория в разделе ![image](../../_assets/console-icons/gear.svg) **Настройки репозитория** перейдите в секцию ![image](../../_assets/console-icons/persons-lock.svg) **Участники и роли**.
1. В правом верхнем углу нажмите **Новая роль**.
1. В открывшемся окне выберите принцип, по которому пользователю будет отправлено приглашение в репозиторий и назначена роль:

    {% list tabs group=invite-type %}

    - Логин {#login}

      1. В поле **Пользователи или команды** начните вводить публичное имя пользователя, например `Иванов Иван`, или никнейм, например `ivanov-2000`, и выберите пользователя среди предложенных вариантов.
      1. В выпадающем списке **Роль** выберите [роль](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/index.md#roles-list), которую хотите назначить.
      1. В выпадающем списке **Срок действия приглашения** выберите срок, в течение которого пользователь должен принять приглашение в репозиторий.
      1. Нажмите **Добавить**.

    - E-mail {#e-mail}

      1. В поле **Адреса электронной почты** поочередно введите адреса электронной почты пользователей, которым хотите назначить роль.
      1. В выпадающем списке **Роль** выберите [роль](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/index.md#roles-list), которую хотите назначить.
      1. В выпадающем списке **Срок действия приглашения** выберите срок, в течение которого пользователь должен принять приглашение в репозиторий.
      1. Нажмите **Добавить**.

    - Ссылка {#link}

      <!-- source: ru/_includes/sourcecraft/link-invite-intro.md -->
      Вы можете сгенерировать уникальные _ссылки-приглашения_ для произвольных пользователей. Каждая ссылка имеет свой срок действия и может быть использована только один раз. 

      Этот способ полезен, если вам неизвестны логины или электронные почты пользователей, а также может быть использован для автоматизации назначения ролей и предоставления доступа к репозиторию.

      Перейдя по ссылке, пользователь может принять ваше приглашение. После этого он получит доступ к вашей организации и репозиториям в ней.
      <!-- endsource: ru/_includes/sourcecraft/link-invite-intro.md -->
      
      Также пользователю будет назначена [роль](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/index.md#roles-list), указанная вами.
      
      Чтобы сгенерировать ссылки-приглашения:
      1. В выпадающем списке **Срок действия приглашения** выберите срок, в течение которого будет действовать ссылка.
      1. В поле **Количество** укажите количество уникальных ссылок-приглашений.
      1. (опционально) В поле **Префикс** укажите префикс для ссылок-приглашений, например `team-sourcecraft`.
      1. В выпадающем списке **Роль** выберите [роль](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/index.md#roles-list), которая будет назначена пользователям, принявшим приглашение по ссылке.
      1. Нажмите **Добавить**.
      1. В открывшемся окне скопируйте ссылки в буфер обмена или скачайте в виде файла и закройте окно.

          {% note warning %}

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

          {% endnote %}

      1. Отправьте ссылки-приглашения пользователям, которым вы хотите назначить роль.

    - Мульти-ссылка {#multi-link}

      Вы можете сгенерировать одну _мульти-ссылку_, по которой к репозиторию сможет присоединиться один или несколько пользователей. Создать мульти-ссылку можно как для заранее известных пользователей, так и для произвольных.

      Также пользователям, принявшим мульти-ссылку, будет назначена [роль](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/index.md#roles-list), указанная вами.

      <!-- source: ru/_includes/sourcecraft/multi-link-sa.md -->
      Мульти-ссылка работает через [сервисный аккаунт](https://yandex.cloud/ru/docs/iam/concepts/users/service-accounts) Yandex Identity and Access Management с [ролью](https://yandex.cloud/ru/docs/iam/roles-reference#organization-manager-passportUserAdmin) `organization-manager.passportUserAdmin`. Вы можете выбрать существующий сервисный аккаунт или создать новый.
      <!-- endsource: ru/_includes/sourcecraft/multi-link-sa.md -->

      Чтобы сгенерировать мульти-ссылку:
      1. В выпадающем списке **Срок действия приглашения** выберите срок, в течение которого будет действовать мульти-ссылка.
      1. (Опционально) В поле **Лимит пользователей** укажите максимальное число пользователей, которые смогут принять мульти-ссылку. Если поле не заполнено, число пользователей не ограничено.
      1. (Опционально) В поле **Уникальное имя ссылки** укажите уникальное имя мульти-ссылки. Если поле не заполнено, имя будет сгенерировано автоматически.
      1. В выпадающем списке **Роль** выберите [роль](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/index.md#roles-list) для приглашаемых пользователей.
      1. В блоке **Могут принять** выберите ограничение для приглашения:
          * **Все** — приглашение может принять любой пользователь.
          * **Некоторые** — приглашение могут принять только определенные пользователи:
            * (Опционально) **Пользователи SourceCraft** — начните вводить публичное имя, например `Иванов Иван`, или никнейм, например `ivanov-2000`, и выберите одного из предложенных пользователей. Вы можете добавить несколько пользователей.
            * (Опционально) **Логины Яндекса** — введите логин пользователя и нажмите **Добавить логин**. Вы можете добавить несколько пользователей.
      1. В блоке **Сервисный аккаунт** выберите вариант:
          * **Автоматически** — в Yandex Cloud автоматически будет создан новый сервисный аккаунт с [ролью](https://yandex.cloud/ru/docs/iam/roles-reference#organization-manager-passportUserAdmin) `organization-manager.passportUserAdmin`.
          * **Выбрать существующий** — выберите [сервисный аккаунт](https://yandex.cloud/ru/docs/iam/concepts/users/service-accounts) Yandex Identity and Access Management, от имени которого будут создаваться приглашения.
      1. Нажмите **Добавить**.
      1. В открывшемся окне скопируйте мульти-ссылку в буфер обмена и закройте окно.

          {% note warning %}

          После закрытия окна сгенерированная мульти-ссылка будет недоступна. Но вы можете создать новую.

          {% endnote %}

      1. Отправьте мульти-ссылку пользователям, которым вы хотите назначить роль.

    {% endlist %}

{% note tip %}

Вы можете назначать роли в репозитории сразу группе пользователей. Подробнее на странице [Команды в SourceCraft](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/teams.md).

{% endnote %}

### Назначить роль пользователю в репозитории с помощью API {#api}

Для автоматизации процесса назначения ролей доступен [REST API SourceCraft](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/operations/api-start.md).

Например, вы можете встроить процесс выдачи ролей на сайт или в свою систему управления доступом.

Подробнее на странице [Repository | Roles](https://api.sourcecraft.tech/docs/index.html#tag/Repository-or-Roles).

Чтобы назначить пользователю роль:
1. [Получите](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/pat.md#create) персональный токен (PAT).
1. Выполните запросы в зависимости от того, состоит ли пользователь в организации:

    {% list tabs group=user-type %}

    - Участник организации {#org-user}

      1. Получите идентификатор пользователя в SourceCraft:

          ```bash
          export PAT=<персональный_токен>
          curl \
            --request GET \
            --url "https://api.sourcecraft.tech/users/<слаг_пользователя>" \
            --header "Authorization: Bearer $PAT" | jq -r '.id'
          ```

          Результат:

          ```json
          "01971bf5-676b-79a3-adbf-7644********"
          ```

          Подробнее на странице [GetProfile](https://api.sourcecraft.tech/docs/index.html#tag/User/operation/GetProfile).

      1. Назначьте пользователю роль:

          ```bash
          export PAT=<персональный_токен>
          curl \
            --request POST \
            --url "https://api.sourcecraft.tech/repos/<слаг_организации>/<слаг_репозитория>/roles" \
            --header "Authorization: Bearer $PAT" \
            --header "Content-Type: application/json" \
            --data '{
              "subject_roles": [
                {
                  "role": "<роль>",
                  "subject": {
                    "type": "user",
                    "id": "<идентификатор_пользователя_в_SourceCraft>"
                  }
                }
              ]
            }' | jq
          ```

          Возможные значения для `role` на странице [Repository | Roles](https://api.sourcecraft.tech/docs/index.html#tag/Repository-or-Roles).

          Результат:

          ```json
          {
            "subject_roles": [
              {
                "role": "admin",
                "subject": {
                  "type": "user",
                  "id": "01971bf5-673f-7c64-a88a-509b********"
                }
              },
              {
                "role": "viewer",
                "subject": {
                  "type": "user",
                  "id": "01971bf5-676b-79a3-adbf-7644********"
                }
              }
            ],
            "next_page_token": ""
          }
          ```

          Подробнее на странице [Repository | Roles](https://api.sourcecraft.tech/docs/index.html#tag/Repository-or-Roles).

    - Новый пользователь {#invitee}

      1. [Пригласите](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/invite.md#api-create-invite) пользователя в организацию.
      1. [Получите](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/invite.md#api-get-invite) информацию об операции создания приглашения. Из этой информации выделите идентификатор пользователя организации — поле `response: invites: subject: id`.
      1. Назначьте пользователю роль:

          ```bash
          export PAT=<персональный_токен>
          curl \
            --request POST \
            --url "https://api.sourcecraft.tech/repos/<слаг_организации>/<слаг_репозитория>/roles" \
            --header "Authorization: Bearer $PAT" \
            --header "Content-Type: application/json" \
            --data '{
              "subject_roles": [
                {
                  "role": "<роль>",
                  "subject": {
                    "type": "invitee",
                    "id": "<идентификатор_пользователя_в_организации>"
                  }
                }
              ]
            }' | jq
          ```

          Возможные значения для `role` на странице [Repository | Roles](https://api.sourcecraft.tech/docs/index.html#tag/Repository-or-Roles).

          Результат:

          ```json
          {
            "subject_roles": [
              {
                "role": "admin",
                "subject": {
                  "type": "user",
                  "id": "01971bf5-673f-7c64-a88a-509b********"
                }
              },
              {
                "role": "viewer",
                "subject": {
                  "type": "invitee",
                  "id": "ajeth710l8gi********"
                }
              }
            ],
            "next_page_token": ""
          }
          ```

          Подробнее на странице [Repository | Roles](https://api.sourcecraft.tech/docs/index.html#tag/Repository-or-Roles).

    {% endlist %}
<!-- endsource: ru/_includes/sourcecraft/security-bind.md -->

#### Полезные ссылки {#see-also}

* [Управление доступом в SourceCraft](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/index.md)
* [Пригласить пользователя в организацию](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/operations/invite.md)
