2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

rails_adminのadmin権限ユーザーの認証状態を確認する方法

Posted at

結論

config/initializer/rails_admin.rb

config.authenticate_with do
    warden.authenticate! scope: :admin #←ここ
end

なら

warden.authenticated?(:admin) # boolean

or

current_admin.nil?

#:adminとcurrent_XXXはconfig/initializer/rails_admin.rb(rails_adminでの初期設定)による

説明

rails_adminを使用していて、「current_user(一般ユーザのwardenのスコープを:userにしてる場合)で取れるユーザーではなく、rails_adminで使用しているユーザーで認証したい!」ということがあったので調べました。

rails_admin導入時にWhere do you want to mount rails_admin?と聞かれてadminと答える場合が多いと思うのですが、この時に答えた値がrails_adminで使用するwardenスコープとして登録されます。
そして

config/initializer/rails_admin.rb

config.authenticate_with do
    warden.authenticate! scope: :admin
end

この部分でrails_adminではこのスコープを使用しますよーと設定されているので、あとはこのスコープで認証されているかをチェックすれば良いのですね!

##参考
https://github.com/hassox/warden/wiki/Scopes
http://tagamidaiki.com/introduce-rails-admin-to-rails4/

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?