Salve a tutti,
sto creando un’applicazione web con rails che comprende un sistema di
gestione ruoli per gli utenti, ma ho qualche dubbio rispetto alla
gestione dei ruoli e l’architettura dell’applicazione.
Al momento gestisco 3 tipi di utenti: Amministratore > Capo Area >
Impiegato , dall’utente con privilegi maggiori fino a quello con
privilegi minimi.
Fin qui nessun problema, riesco a bloccare determinate azioni o interi
controller rispetto al ruolo. Quello che non riesco a strutturare in
modo pulito sono le situazioni dove piu utenti hanno accesso alla stessa
azione, ma devono vedere dati (estratti dal db) differenti.
Esempio:
Un Impiegato ha dei Documenti, nell’azione index del controller
documents dovrei mostrare tutti i SUOI documenti. Un capo area ha
accesso alla stessa azione dello stesso controller, ma vedere tutti i
documenti di TUTTI gli impiegati, un find(:all) in pratica.
Vorrei evitare condizioni nei controller in queste situazioni del tipo:
se sei capo area, fai un find(:all), se sei Impiegato fai un find solo
sui documenti dell’utente ecc…
Mi piacerebbe avere qualche input dalla community per capire come voi
risolvereste la cosa.
Grazie in anticipo!