Короткое замечание:
При реализации механизмов контроля доступа, как правило, проверки RBAC должны выполняться на стороне сервера.
Код RBAC в клиентском JavaScript может быть изменен клиентом.
Это означает, что при определении основных разрешений RBAC для сотрудников, администраторов и модераторов это следует делать (в общем случае) в Rails, а не в JavaScript.
Кстати, именно так Discourse теперь реализует RBAC, используя то, что в Discourse называют «guardian» — класс Ruby под названием class Guardian, вот здесь:
Если разработчик планирует добавлять проверки RBAC в JavaScript-код, вызывая API Discourse, имейте в виду, что такой код может быть скомпрометирован, поскольку код, выполняющийся в браузере, может быть изменен.
Моя рекомендация — убедиться, что весь основной код RBAC выполняется на стороне сервера, и не пытаться обходить это правило с помощью клиентского JavaScript.