Problemi risolti con il plugin ScopedAccess
Ho sempre avuto alcuni problemi ad utilizzare il plugin ScopedAccess installabile con il comando:
1 ruby script/plugin install http://wota.jp/svn/rails/plugins/branches/stable/scoped_access/
Ho avuto bisogno di filtrare dei record ottenuti dal database in base all’utente connesso al pannello di amministrazione di un’applicazione. Per farlo basta utilizzare le seguenti righe di codice:
1 around_filter ScopedAccess::Filter.new(User, :owner) 2 3 protected 4 5 { 6 :find => {:conditions => ["user_id = ?", session[:back_user].id]}, 7 :create => {:user_id => session[:back_user].id}, 8 } 9 end
Dove User è il modello associato alla tabella degli utenti da filtrare o da creare nel pannello di controllo. Impostando il filtro :owner facciamo sì che automaticamente si abbiano nelle ricerche solamente gli utenti appartenenti al back_user loggato e in creazione si associa all’utente il back_user che lo crea. Tutto ok fino a quando l’applicazione lavorava in development, mentre in produzione non funzionava più niente. Il filtro prendeva il primo valore per il back_user che gli veniva passato e poi non lo variava più.
E’ uscita una nuova versione del plugin che risolve questo problema. Consiglio quindi a tutti quelli che hanno cercato di utilizzarlo nelle proprie applicazioni di aggiornarlo all’ultima release!

