Quindi la mia comprensione dell'RBAC è che gli utenti hanno ruoli e ruoli hanno permessi e ci dovrebbe essere una mappatura degli oggetti di autorizzazione.
Sto avendo un po 'di problemi di logica di business anche se riguarda RBAC. Per questo problema abbiamo due ruoli, Player e GM . Vorrei che GM fosse in grado di concedere l'accesso in lettura a determinati oggetti a Player s. In teoria, devo anche concedere l'autorizzazione di lettura GM .
Role | Permission
-----------------
GM | read_place
Player | read_place
Object id | Permission
----------------------
1 | read_place
ora sia GM che i giocatori potevano leggere l'oggetto con id 1. Ma se avessi revocato il permesso sull'oggetto non potrei farlo.
Object id | Permission | Role
-----------------------------------
1 | read_place | GM
questo consentirebbe solo a GM di leggere l'oggetto 1
Role | Permission
-----------------
GM | gm_read_place
Player | player_read_place
Object id | Permission
-----------------------------------
1 | gm_read_place
questo permetterebbe ai gm di leggere senza che i giocatori possano farlo a meno che il gm non abbia concesso il permesso all'oggetto.
Entrambe le soluzioni si sentono sporche, mi manca qualcosa? c'è una soluzione migliore?