# Как настроить пользовательские права для персонала, администраторов и модераторов

**URL:** <https://meta.discourse.org/t/how-to-define-custom-permissions-for-staff-admins-moderators/122545>\
**Category:** Support\
**Created:** [10.Июль.2019 10:29:14 UTC](https://meta.discourse.org/t/how-to-define-custom-permissions-for-staff-admins-moderators/122545 "2019-07-10T10:29:14Z")\
**Posts on this page:** 1\
**Showing post:** 22

<div class="post-metadata">

**Author:** ![neounix](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/neounix/32/215617_2.png) [@neounix](https://meta.discourse.org/u/neounix)\
**Post date:** [13.Декабрь.2020 02:32:20 UTC](https://meta.discourse.org/t/how-to-define-custom-permissions-for-staff-admins-moderators/122545/22 "2020-12-13T02:32:20Z")

</div>

Короткое замечание:

При реализации механизмов контроля доступа, как правило, проверки RBAC должны выполняться на стороне сервера.

Код RBAC в клиентском JavaScript может быть изменен клиентом.

Это означает, что при определении основных разрешений RBAC для сотрудников, администраторов и модераторов это следует делать (в общем случае) в Rails, а не в JavaScript.

Кстати, именно так Discourse теперь реализует RBAC, используя то, что в Discourse называют «guardian» — класс Ruby под названием `class Guardian`, вот здесь:

> <https://github.com/discourse/discourse/blob/main/lib/guardian.rb>

Если разработчик планирует добавлять проверки RBAC в JavaScript-код, вызывая API Discourse, имейте в виду, что такой код может быть скомпрометирован, поскольку код, выполняющийся в браузере, может быть изменен.

Моя рекомендация — убедиться, что весь основной код RBAC выполняется на стороне сервера, и не пытаться обходить это правило с помощью клиентского JavaScript.

---

_[View the full topic](https://meta.discourse.org/t/how-to-define-custom-permissions-for-staff-admins-moderators/122545)._
