ruby-on-rails - tokens - devise tutorial rails
Resque, Devise y autenticación de administrador (4)
Puede intentar subclasificar la clase Resque :: Server de esta manera:
require ''resque/server''
class SecureResqueServer < Resque::Server
before do
redirect ''/login'' unless some_condition_is_met!
end
end
Y usarlo en tus rutas de esta manera:
mount SecureResqueServer.new, :at => ''/resque''
Obtuve esta información de este blog. Darle una oportunidad.
Usando Resque y Devise, tengo roles para el usuario, como:
User.first.role #=> admin
User.last.role #=> regular
Quiero configurar una autenticación para Resque. Entonces, dentro de config / routes.rb tengo:
namespace :admin do
mount Resque::Server.new, :at => "/resque", :as => :resque
end
Y, por supuesto, es accesible para todos los usuarios que hayan iniciado sesión.
¿Hay alguna forma de usar un rol de User.role? Solo debe ser accesible para usuarios con el rol ''admin''.
Muchas gracias.
Use una restricción de ruta en su archivo routes.rb
:
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
Vea esta publicación en el blog y los comentarios. Espero que te ayude
Siempre existe la nueva solución, escriba esto en sus routes.rb para rails> 3.1:
authenticate :admin do
mount Resque::Server.new, :at => "/resque"
end
Y no lo olvides
devise_for :admins
en su archivo routes.rb
:
authenticate :user, lambda {|u| u.role == ''admin'' } do
mount Resque::Server.new, :at => "/resque"
end
Además, asegúrese de tener devise_for :users
en algún lugar de ese archivo