Using Resque and Devise, i have roles for User, like:
User.first.role #=> admin
User.last.role #=> regular
I want to setup an authentication for Resque. So, inside config/routes.rb i have:
namespace :admin do
mount Resque::Server.new, :at => "/resque", :as => :resque
end
And, of course it's accessible for all logged in users.
Is there any way to use a role from User.role? It should be accessible only by users with 'admin' role.
Thanks a lot.
Use a route constraint, in your routes.rb
file:
resque_constraint = lambda do |request|
request.env['warden'].authenticate? and request.env['warden'].user.admin?
end
constraints resque_constraint do
mount Resque::Server, :at => "/admin/resque"
end