Перейти к содержимому

Глоссарий

Доступ по ролям (RBAC)

Один открывает отданные ему профили, другой закупает адреса, третий платит по счёту и отвечает за команду. Когда у всех права владельца, самая мелкая ошибка становится бедой всего аккаунта.

Доступ по ролям это правило, по которому человеку разрешено ровно то, что даёт его ступень, а не его имя.

Лестница и что она открывает

Ступени идут по старшинству, и каждая несёт в себе всё, что даёт ступень ниже. Имена взяты отраслевые, а границы у них такие, какие сервер действительно держит на каждом ходу.

  • Участник и оператор

    Работают с открытыми им профилями, а в общих креативах команды и кладут, и сносят наравне со старшими. Папки, адреса и расписания менять им нельзя.

  • Управляющий

    Плюс папки, библиотека адресов, сохранённые сценарии, расписания и заявки в лавке адресов. Денег и людей эта ступень не касается.

  • Администратор

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

  • Владелец

    Всё сразу, и это единственная ступень, которую нельзя ни отобрать, ни сузить чужими руками изнутри пространства.

Ступень сравнивают по старшинству

Каждый ход требует нижнюю ступень, и всё, что стоит выше, проходит. Поэтому администратору не нужно второе разрешение на работу управляющего.

Роль, которой сервер не знает, встаёт ниже самой нижней ступени. Опечатка в имени роли не даёт ничего вместо того, чтобы по недосмотру дать всё.

Где проходит черта

ДействиеНижняя ступень, которая проходит
Открыть и вести отданный тебе профильУчастник
Завести, переименовать и снести папкуУправляющий
Завести, поправить или снести адрес в библиотекеУправляющий
Сменить адрес общей мобильной линииУправляющий
Выкачать библиотеку адресов на вторую машинуУправляющий
Сохранить общий сценарий или расписаниеУправляющий
Завести заявку на трафик в лавке адресовУправляющий
Позвать, исключить, поменять ступеньАдминистратор
Читать историю рабочего пространстваАдминистратор
Сменить тариф или картуАдминистратор

У ключа для программ тоже есть ступень

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

Оба читаются на одном запросе, и побеждает тот, что уже. Ключ только на чтение у администратора по-прежнему только читает.

Роли и папки отвечают на разное

Ступень отвечает на вопрос, что человеку разрешено менять. Папка отвечает на вопрос, какие профили он вообще видит и открывает.

Они не заменяют друг друга, а перемножаются: управляющий, посаженный на одного клиента, всё так же правит общую библиотеку и всё так же видит одного этого клиента.

С чем это путают

  • Вход в аккаунт

    Второй шаг на двери доказывает, кто именно пришёл. Ступень решает, до чего пришедшему разрешено дотянуться внутри.

  • Права ключа для программ

    Права сужают один ключ. Ступень принадлежит человеку и действует на каждый ключ, который он заведёт.

  • Доступ к папкам

    Папки сужают то, что человек видит. Ступень сужает то, что он может менять, и ставятся эти две вещи в разных местах.

Чего это не делает

  • Это не даёт написать свою роль под себя. Лестница задана заранее, и выбор остаётся один: на какую ступень поставить человека.
  • Это не меняется от папки к папке. Нельзя быть администратором у одного клиента и оператором у другого: ступень принадлежит всему пространству.
  • Это не передаёт профиль в руки. Ступень решает, что человеку можно менять, а сам профиль всё равно нужно открыть ему отдельным действием.
  • Это не сужает владельца. Тот, кто завёл пространство, видит его целиком, и администратор не запрёт его в его же собственном аккаунте.

Проверить

Каждая черта выше это строка в файле, который можно открыть.

Лестница, числовое старшинство и роли, которые можно выдать
apps/server/src/common/roles/workspace-roles.ts
Ступень берётся после входа и сравнивается, а незнакомая роль не даёт ничего
apps/server/src/common/roles/roles.guard.ts
Нижнюю ступень не пускают ни к правке библиотеки, ни к смене адреса
apps/server/test/paid-access.js · apps/server/test/proxy-secret.js
Доступ к папкам читается и при показе списка, и при открытии профиля
apps/server/test/group-access.js

Вопросы

Видит ли управляющий деньги?
Нет. Оплата и история пространства начинаются со ступени администратора, а список тех, кто в пространстве и на какой ступени, открыт каждому его участнику.
Что будет с незнакомой ролью?
Она встаёт ниже самой нижней ступени и не даёт ничего. Так и задумано: сломанное или незнакомое имя обязано закрывать дверь, а не открывать её настежь.
Обходит ли ключ программы ступень?
Нет. Ключ приводит к своему хозяину, ступень хозяина сравнивается как обычно, а права, записанные на самом ключе, сужают её дальше.
Почему оператор пользуется адресом, но не правит его?
Без рабочего адреса профиль не запустить вовсе, поэтому пользоваться им может каждый. А правка и смена адреса меняют то, через что коллеги работают прямо сейчас.
Можно ли запретить человеку удалять профили?
Открытый доступ такого права не даёт. Профиль удаляет тот, кто его завёл, или администратор, а всем прочим отвечают, что профиля нет.

Дайте каждому нужную ступень

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