在我的AA应用程序中,我使用以下说明隐藏我不希望非管理员用户看到的菜单:
menu :if => proc{ current_user.is_admin? }
但这并不妨碍这些用户在网址中输入/ admin / users并访问用户菜单内容。防止非管理员用户访问隐藏菜单的最佳方法是什么?
答案 0 :(得分: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提供的方法。