1

我试图在我的控制器中要求授权 purcahses_controller.rb 这只是一个带有 Show Edit Destroy 的订单模型。我可以在 active_admin 中查看它,url 是 localhost/admin/purchases。但问题是我也可以在 localhost/purchases 上查看它。它列出了所有订单并允许所有功能。如果用户没有登录,我想用一个简单的未经授权的消息来路由到 rooturl。

4

2 回答 2

3

您可以执行以下操作,它将为您提供重定向到您认为合适的任何路径的选项。

在文件中

配置/初始化程序/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

在您的 purchase_controller 中添加以下 before_filter 行:

before_filter :authenticate_active_admin_user!

希望这会有所帮助!〜凯文

于 2013-01-07T20:32:05.120 回答
0

authenticate_active_admin_user使您可以访问管理员身份验证用户,这将引导您获得授权,无论您在管理员中调用什么。

controller do 
  skip_before_action :authenticate_active_admin_user, only: :action
end

https://www.rubydoc.info/gems/nsm-activeadmin/0.2.2/ActiveAdmin%2FResourceController%3Aauthenticate_active_admin_user

https://github.com/activeadmin/activeadmin/blob/master/lib/active_admin/base_controller.rb#L38

于 2019-08-13T23:16:35.007 回答