代码之家  ›  专栏  ›  技术社区  ›  Luc

隐藏ActiveAdmin菜单,但不禁用它

  •  1
  • Luc  · 技术社区  · 12 年前

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

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

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

    1 回复  |  直到 12 年前
        1
  •  2
  •   maximus ツ    12 年前

    你可以用cancan来做这件事,也可以像这样写你自己的过滤器,

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

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

     controller.authorize_resource
    

    方法。