簡単な注意点です:
アクセス制御に関するコーディングでは、一般的にこれらの RBAC チェックはサーバー側で実行されるべきです。
クライアント側の JavaScript に記述された RBAC コードは、クライアントによって操作される可能性があります。
つまり、スタッフ、管理者、モデレーター向けの基本的な RBAC 権限を定義する際は、一般的に JavaScript ではなく Rails 側で行うべきです。
余談ですが、Discourse も現在「guardian」と呼ばれる機能を使用して RBAC を実装しています。これは class Guardian という Ruby クラスで、以下にあります:
もし開発者が Discourse API を呼び出して JavaScript コードに RBAC チェックを追加する予定がある場合は、ブラウザで実行されるコードは操作される可能性があるため、このコードが侵害されうることを念頭に置いてください。
私の推奨は、すべての基本的な RBAC コードがサーバー側で実行されるようにし、クライアント側の JavaScript でこれをショートカットしようとはしないことです。