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

Почему права — отдельные тумблеры, а не пакет к роли

Роль (Менеджер, РОП и так далее) задаёт базовую модель доступа. Но такие вещи, как «видеть все компании команды, а не только свои» или «удалять компании», — это отдельные переключатели, которые владелец или администратор включает конкретному человеку, а не свойство самой роли.

Почему не зашить это в роль жёстко

Команды устроены по-разному. На одной роль «Менеджер» — это младший продавец, которому видеть чужие сделки не нужно и не должно. На другой — тот же «Менеджер» де-факто замещает РОПа в его отсутствие, и ему нужен обзор всей команды. Если бы права были жёстко привязаны к роли, под второй случай пришлось бы либо менять роль человеку (а вместе с ней — все остальные ожидания от роли), либо просить нас менять код.

Почему не дать все права сразу всем

Большинству менеджеров не нужно видеть компании всей команды — и не должно: это и про фокус (не теряться в чужих делах), и про то, что не всем нужно видеть суммы чужих сделок. Дефолт — «видишь только своё» — закрывает основной случай без лишних разговоров о доступе.

Итог

Роль отвечает на вопрос «что человек обычно делает». Тумблеры отвечают на вопрос «что нужно именно этому человеку, сверх обычного». Разделение этих двух решений позволяет не переписывать роль каждый раз, когда у одного конкретного сотрудника появляется нестандартная задача.