Por lo tanto, mi comprensión de RBAC es que los usuarios tienen roles, y los roles tienen permisos y debería haber una asignación de objetos de permiso.
Estoy teniendo un pequeño problema de lógica de negocios en relación con RBAC. Para este problema tenemos dos roles, Player y GM . Me gustaría que el GM pueda otorgar acceso de lectura a ciertos objetos a los jugadores . En teoría, también necesito conceder el permiso GM de lectura.
Role | Permission
-----------------
GM | read_place
Player | read_place
Object id | Permission
----------------------
1 | read_place
ahora tanto GM como los jugadores pueden leer el objeto con la identificación 1. Pero si revoco el permiso sobre el objeto, ninguno podría.
Object id | Permission | Role
-----------------------------------
1 | read_place | GM
esto permitiría que solo GM s leer el objeto 1
Role | Permission
-----------------
GM | gm_read_place
Player | player_read_place
Object id | Permission
-----------------------------------
1 | gm_read_place
esto permitiría que las GM leyeran sin que los jugadores puedan hacerlo, a menos que la GM otorgue el permiso al objeto.
Ambas soluciones se sienten sucias, ¿me falta algo? ¿Hay una mejor solución?