Как с помощью pundit запретить изменение атрибута на определенное значение?
Всем привет.
Мы используем pundit в нашей системе для управления правами доступа, однако сейчас столкнулись с проблемой, которая описана в заголовке вопроса.
Мы даем возможность пользователям изменять права доступа другого пользователя, но не должно быть возможности установить группу прав доступа выше или равную собственной.
То есть "Администратор" может редактировать права других пользователей, но он не может дать пользователю права администратора. Аналогично, пользователь с правами "Первый допуск" может редактировать права пользователй с доступом "Второй допуск" и ниже, но не должен иметь возможности установить кому-либо из них "Первый допуск".
Это элементарно решается через def role=(value) в модели (хотя использование current_user в модели тоже не особо приветствуется), но есть ли какое-то решение через pundit? Поиск в гугле и на SO не принес особых результатов. Pundit позволяет задать , в каким именно полям модели у пользователя будет доступ, но он не позволяет проверить новые значения.