我需要使用 devise 设置仅在登录用户是管理员(user.admin?)时才有效的路由。我正在为 sidekiq 做这个,但这个问题对于任何类似的用途都是有效的。
这是我的路线代码:
class AdminConstraint
def matches?(request)
!request.session['warden.user.user.key'].nil? and request.session['warden'].user.admin?
end
end
require 'sidekiq/web'
mount Sidekiq::Web => '/sidekiq', :constraints => AdminConstraint.new
我从 sidekiq wiki 获得了这段代码: https ://github.com/mperham/sidekiq/wiki/Monitoring 我尝试了他们发布的代码,但没有成功,所以我在刚刚发布的时候做了一些修改。当用户评估为零时,上面的代码不起作用。
处理此问题的正确安全方法是什么?
谢谢你的帮助!