Cómo definir permisos personalizados para staff, admins y moderadores

Solo una nota breve:

Al programar aspectos de control de acceso, en general, estas verificaciones de RBAC deben realizarse en el lado del servidor.

El código de RBAC en JavaScript del lado del cliente puede ser manipulado por el cliente.

Esto significa que, al definir permisos centrales de RBAC para el personal, administradores y moderadores, esto debe hacerse (en términos generales) en Rails, no en JavaScript.

Por cierto, así es como Discourse implementa ahora el RBAC, utilizando lo que Discourse llama “guardian”, una clase de Ruby llamada class Guardian, aquí:

Si un desarrollador va a agregar verificaciones de RBAC en código JavaScript llamando a la API de Discourse, tenga en cuenta que este código puede ser comprometido porque el código que se ejecuta en el navegador puede ser manipulado.

Mi recomendación es asegurarse de que todo el código central de RBAC se ejecute en el lado del servidor y no intentar atajos en JavaScript del lado del cliente.