Права доступа по филиалам и точкам: как не показать лишнего
Почему разделение доступа закладывают на уровне данных, что описывают до разработки и как проверять права при приёмке.
Права доступа кажутся скучной темой ровно до первого случая, когда
управляющий одной точки увидел выручку другой или закупочные цены. После этого они становятся
главной темой квартала.
Спрятать кнопку — не значит закрыть доступ
Частая ошибка в самописных системах: интерфейс не показывает раздел, но раздел работает.
Достаточно поменять номер в адресе — открывается чужой документ.
Правильно ограничение живёт на уровне данных: запрос физически не возвращает строки, к
которым у пользователя нет доступа. Тогда неважно, что он введёт в адресную строку.
При проектировании это почти ничего не стоит. Переделывать потом — значит трогать каждый
запрос в системе.
Что описывают заранее
Список ролей и для каждой два перечня: что доступно и что недоступно. Второй пишут реже, а
он ловит больше.
Правила видимости по структуре: точка видит свои продажи, управляющий — свою точку целиком,
региональный руководитель — свой регион, директор — всё. В реальной компании к этому всегда
есть исключения, и их надо вытащить на встрече, а не обнаружить после запуска.
Что происходит при переводе сотрудника между точками: видит ли он старые документы. Ответ
«да» и ответ «нет» одинаково законны, выбрать надо осознанно.
Проверка при приёмке
Вход под каждой ролью по очереди. Отдельно — попытка сделать то, чего роль делать не
должна: открыть чужой документ по прямой ссылке, выгрузить отчёт с закупочными ценами,
изменить данные другой точки.
Проверка занимает час и находит больше проблем, чем неделя тестирования обычных
сценариев.
Отключение доступа
Процедура отключения при увольнении должна быть в одном месте и занимать минуту. Иначе
учётные записи уволившихся живут в системе годами — и однажды кто-то ими воспользуется.
Читайте также: разработка программного обеспечения, программа для учёта, веб-приложения, личный кабинет, техническое задание.