Sto progettando un sistema di richiesta di risorse in cui un utente può richiedere risorse di tipi diversi. Ci possono essere molti tipi di risorse come:
- VM
- DB
- File System
- etc
I tipi sopra possono avere sottotipi e cioè ci possono essere mysql
, postgresql
ecc per il tipo di risorsa di DB
. L'utente può avere diversi ruoli come:
- Direttore
- Manager
- dipendenti
Use Cases
Un direttore può richiedere qualsiasi risorsa per conto di qualsiasi gestore e il suo centro di costo.
Un manager può richiedere qualsiasi risorsa per conto di qualsiasi dei suoi centri di costo.
Un dipendente può richiedere solo le risorse consentite dal suo manager.
Implementazione:
Per il direttore è molto semplice poiché non vi è alcun controllo nel sistema. Per manager e utente ho una relazione molti a molti tra resource type
e user
entità
Domanda:
Vedo che il sistema ha bisogno di Roles
e Permissions
ma usando questi posso stabilire alcune regole generiche come l'utente assegnato al ruolo Reporting
può vedere i report, ma come gestire un livello più granulare di permessi come un dato utente può richiedere solo una determinata risorsa?