[RAILS] ACL e validazioni

Salve a tutti,

sto creando un’applicazione rails che necessita un Access Contro List
per la gestione di utenti assegnati a ruoli.
Ho di conseguenza un modello User e un modello Role, dove ogni utente ha
uno (e unico) ruolo assegnato.

Il problema nasce sulle validazioni, in pratica a seconda del ruolo,
alle creazione e modifica di un utente cambiano i campi obbligatori. Per
esempio, un utente con ruolo “employee” é obbligato a fornire il suo
numero di cellulare all’iscrizione, mentre un utente con ruolo “manager”
non deve farlo.

Qualcuno sa come risolvere la cosa in modo pulito?

P.S: ho pensato anche a un sistema basato su Single Table Inheritance,
ma non mi é mai piaciuta come soluzione per definirei i ruoli degli
utenti

2010/4/29 Serafino P. [email protected]:

numero di cellulare all’iscrizione, mentre un utente con ruolo “manager”
non deve farlo.

Qualcuno sa come risolvere la cosa in modo pulito?

prova a dare un’occhiata qui:

michele.

Visto che mi sono trovato in un caso analogo, ho risolto con qualcosa di
simile:

il file ‘role_play.rb’ lo puoi mettere in lib/ mentre ‘user.rb’ è solo
un esempio di come usarlo nei model :wink:

in pratica, se hai pochi ruoli e non devi gestirli in termini di
operazioni CRUD, li puoi mettere direttamente nel model usando il metodo
‘has_roleplay’ :stuck_out_tongue:

devi creare anche un campo ‘role_id’ nella tabella del db usata per gli
utenti

spero ti possa aiutare :wink:

ciao,
A.