1

コントローラーにpurcahses_controller.rbという認証を要求しようとしています。これはShowEditDestroyを使用した注文フォームモデルです。active_adminで表示できます。URLはlocalhost/admin/purchasesです。しかし、問題は、localhost/purchasesでも表示できることです。すべての注文が一覧表示され、すべての機能が許可されます。ユーザーがログインしていない場合は、単純な無許可のメッセージでroute_torooturlを実行したいと思います。

4

2 に答える 2

3

以下を実行すると、適切と思われる任意のパスにリダイレクトするオプションが表示されます。

ファイル内

config/initializers/active_admin.rb

次の変更を行います

config.authentication_method = :authenticate_active_admin_user!

次に、アプリケーションコントローラー内に次のようなものを追加します。

class ApplicationController < ActionController::Base
  protect_from_forgery

  def authenticate_active_admin_user!
    authenticate_user!
    unless current_user.superadmin?
      flash[:alert] = "Unauthorized Access!"
      redirect_to "/admin/login"
    end
  end
end

purchases_controller に、次の before_filter 行を追加します。

before_filter :authenticate_active_admin_user!

うまくいけば、これが役に立ちます!〜ケビン

于 2013-01-07T20:32:05.120 に答える