我正在尝试在我的控制器中要求授权purcahses_controller.rb它只是一个带有Show Edit Destroy的订单表单模型..我可以在active_admin中查看它,url是localhost / admin / purchases。但问题是我也可以在localhost / purchase上查看它。它列出了所有订单并允许所有功能。如果用户未登录,我喜欢使用简单的未经授权的消息route_to rooturl。
答案 0 :(得分: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
在您的purchases_controller中添加以下before_filter行:
before_filter :authenticate_active_admin_user!
希望这有帮助! 凯文〜
答案 1 :(得分:0)
authenticate_active_admin_user
使您可以访问admin身份验证用户,这将导致您获得授权,无论您以admin身份进行什么调用。
controller do
skip_before_action :authenticate_active_admin_user, only: :action
end
https://github.com/activeadmin/activeadmin/blob/master/lib/active_admin/base_controller.rb#L38