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