2016-09-23 8 views
0

私はRails 4.XアプリケーションでDoorkeeper gemを使用しています。 Oauthアプリケーションを管理するためのルートを保護する方法はありますか?Railsでドアキーパのルートを保護する方法は?

たとえば、このURL http://localhost:3000/oauth/applicationsを、管理者としてフラグが立てられたDeviseユーザーが利用できるようにしたいとします。

現在のroutes.rbは次のようになります。

Rails.application.routes.draw do 
mount RailsAdmin::Engine => '/admin', as: 'rails_admin' 

use_doorkeeper 
devise_for :users 

ご協力いただきありがとうございます。

答えて

1

Seems Doekeeperが初期化子で処理できるようです。これを追加するだけで動作します。

admin_authenticator do 
    redirect_to new_user_session_url unless current_user && current_user.admin? 
end 
0

私は工夫して、あなたがこれはadmin?メソッドへのごUser応答ことを示唆している。この

Rails.application.routes.draw do 
    mount RailsAdmin::Engine => '/admin', as: 'rails_admin' 
    devise_for :users 
    authenticate :user, lambda { |u| u.admin? } do 
    # the same would be authenticate :user, -> (u) { u.admin? } do 
    use_doorkeeper 
    end 
end 

ような何かを行うことができると思います。

+0

はい。しかし、ドアキーパ内のロジックを使用するのが最善の解決策だと思います。問題を修正しました。あなたにお返事いただきありがとうございます。 :) – NewbieOnRails

+0

それは確かに(私は自分のためにテストした)動作します。はい、宝石がイニシャライザでそれを設定することができれば、それは適切な解決策になります。 – Aleksey

関連する問題