Resque, Devise and admin authentication

后端 未结 4 1358
生来不讨喜
生来不讨喜 2020-12-08 00:48

Using Resque and Devise, i have roles for User, like:

User.first.role #=> admin
User.last.role #=> regular

I want to setup an authent

相关标签:
4条回答
  • 2020-12-08 01:18

    There is always the new solution, type this in your routes.rb for rails > 3.1:

      authenticate :admin do
        mount Resque::Server.new, :at => "/resque"
      end
    

    And don't forget:

    devise_for :admins
    
    0 讨论(0)
  • 2020-12-08 01:21

    in your routes.rb file:

    authenticate :user, lambda {|u| u.role == 'admin' } do
        mount Resque::Server.new, :at => "/resque"
    end
    

    Also, make sure you have devise_for :users somewhere in that file

    0 讨论(0)
  • 2020-12-08 01:37

    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
    
    0 讨论(0)
  • 2020-12-08 01:37

    You can try subclassing the Resque::Server class this way:

    require 'resque/server'
    
    class SecureResqueServer < Resque::Server
    
      before do
        redirect '/login' unless some_condition_is_met! 
      end
    
    end
    

    And using it in your routes this way:

    mount SecureResqueServer.new, :at => '/resque'
    

    I got this information from this blog. Give it a try.

    0 讨论(0)
提交回复
热议问题