ログインしているユーザーが管理者 (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 彼らが投稿したコードを試してみましたが、うまくいかなかったため、投稿したばかりのようにいくつかの変更を加えました。上記のコードは、ユーザーが nil と評価すると機能しません。
これに対処する正しい安全な方法は何ですか?
助けてくれてありがとう!