Управление доступом пользователей в продуктах

Основное, о чем следует знать - что права наследуются.

  1. Рассмотрим самую простую ситуацию, когда у нас есть Репозиторий A и Репозиторий B, сгруппированные в Продукт 1. У нас также есть 2 пользователя: Алиса и Боб.

    Мы вручную даем Алисе роль Editor для Продукта 1, а Боб получает роль Read-only. Они наследуют те же роли для Репозитория A и Репозитория B - получают кросс-роли.

    Кросс-роли означают, что если мы заберем права у пользователя в Продукте 1 или удалим Продукт 1 вообще, то пользователь также лишится прав доступа в репозитории A и B.

  2. Вторая ситуация, с которой мы можем столкнуться - это когда у нас есть Продукт 1 и Продукт 2, и они оба включают в себя Репозиторий A и Репозиторий B. Пример:

    Сначала мы вручную даем Бобу роль Editor для Продукта 1 и Read-only для Продукта 2. Как вычислить, какие права доступа будут у Боба на репозитории? Легко, всего два правила:

    1. применяется роль с большими правами;
    2. ручное назначение роли переписывает кросс-роль.

    Наследование также работает от репозиториев к продуктам. Например, если мы даем Алисе права Editor на Репозиторий A, она автоматически получит кросс-роль на всех продуктах, в которые входит Репозиторий A. Однако Алиса может получить только права Read-only в качестве кросс-роли для продукта, потому что доступ к продукту ей нужен лишь затем, чтобы видеть репозиторий в нём. Впрочем, как и в предыдущей ситуации, мы можем это изменить, выдав права вручную.