1

在我的 AA 应用程序中,我使用以下说明隐藏我不希望非管理员用户看到的菜单:

menu :if => proc{ current_user.is_admin? }

但这并不妨碍这些用户在 url 中输入 /admin/users 并访问用户菜单内容。防止非管理员用户访问隐藏菜单的最佳方法是什么?

4

1 回答 1

2

您可以使用 cancan 执行此操作,也可以像这样编写自己的过滤器,

controller do
  before_filter :check_admin
  def check_admin
    unless current_user.is_admin?
     redirect_to "/", :error => "Access denied"
    end
  end
end

对于 cancan gem,您需要定义能力文件,然后您可以使用

 controller.authorize_resource

由activeadmin提供的方法。

于 2013-04-15T06:23:40.517 回答