tutorial tokens rails hacer con como autenticacion ruby-on-rails devise resque

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