Idear.Obtener el rol current_user
-
27-10-2019 - |
Pregunta
Es un seguimiento de la pregunta Resque, Devise y autenticación de administrador .
Suponiendo que tenemos:
User.last.role #=> 'admin'
El nuevo problema es: cómo obtener acceso al usuario actual (ya que tengo User.role, que puede ser 'admin' o 'user') desde esto:
require 'resque/server'
class SecureResqueServer < Resque::Server
before do
#redirect '/login' unless current_user.role == 'admin'
end
end
Gracias.
Solución 2
Bueno, todo es mucho más sencillo. Para obtener la instancia de usuario actual directamente de Warden, simplemente:
env['warden'].user
De esta manera, utilizando Devise y el sistema de roles descrito anteriormente, puede:
require 'resque/server'
class SecureResqueServer < Resque::Server
before do
redirect '/login' unless env['warden'].user.role == 'admin'
end
end
Otros consejos
Solo tengo experiencia con authlogic y Resque, pero esto parece relevante:
http://blog.kiskolabs.com/post/776939029/rails3-resque-devise
El autor actualizó su blog y sugiere que agregue lo siguiente a sus rutas, obviamente adaptándolo a sus necesidades específicas:
authenticate :admin do
mount Resque::Server.new, :at => "/resque"
end