Diversi ruoli in Ruby On Rails

0

Mi è stato chiesto di mettere insieme un'applicazione in RoR che ha più ruoli per gli utenti. L'idea è che un utente abbia un ruolo, amministratore, moderatore, utente ect ... e avranno anche un reparto, risorse umane, informatica, assistenza clienti ecc.

L'app avrà sezioni designate per ciascun dipartimento per gestire i dati e altre attività base basate su CRUD.

Ciò che l'app deve consentire è che un utente possa accedere solo ai reparti a cui è assegnato, un utente può avere più reparti, un utente può essere un amministratore di un dipartimento ma può essere solo un utente di un altro dipartimento.

Qual è il modo migliore di mettere insieme qualcosa del genere?

    
posta twigg 17.11.2013 - 13:21
fonte

1 risposta

1

Esiste una relazione n: m tra utenti e reparti e un'altra relazione n: m tra utenti e ruoli. Ognuna di queste relazioni potrebbe essere rappresentata dalla propria tabella nel DB. Supponendo che ogni oggetto utente abbia un ID, è possibile interrogare il database durante l'autorizzazione per verificare se esiste una relazione appropriata. Questo potrebbe essere controllato da un gestore delle autorizzazioni, ma sarebbe meglio non visualizzare nemmeno i collegamenti alle risorse che un utente non è autorizzato a utilizzare.

Se hai bisogno di memorizzare queste informazioni all'interno dei tuoi oggetti (che preferirei di no, a causa del principio di responsabilità singola), ogni utente avrebbe una serie di ruoli o dipartimenti. Ogni ruolo / reparto sarebbe un oggetto singleton, quindi si potrebbe fare (pseudocodice :) user.roles.contains?(Role.admin) .

    
risposta data 17.11.2013 - 16:00
fonte

Leggi altre domande sui tag