我想根据查看用户的权限动态更改菜单。我希望superadmin用户能够访问正常的Resource操作(索引,显示,更新等)。因此,当管理员点击菜单项时,它会将它们带到该资源的索引。我想限制普通管理员用户只查看特定的节目页面。
superadmin的菜单路线为:/ admin / resource
普通管理员的菜单路线为:/ admin / resource / id
我还想限制对索引视图或他们无权访问的其他资源的正常管理员访问权限。我已经能够实现这两个方面,但我还没有能够将菜单项映射到特定的显示页面。我知道我可以创建一个自定义页面和视图,但我真的想在superadmin和普通管理员之间共享显示和编辑页面的自定义DSL。
任何人都知道如何实现这一目标。
答案 0 :(得分:1)
好的,所以我想办法得到我想要的东西。我不确定是否完全符合我的要求。 (意思是,创建映射到特定资源的自定义菜单项会很好)
我刚刚覆盖索引控制器操作以重定向到特定的显示页面。因为超级管理员需要访问原始商店资源,所以我必须使用:as。
将其别名ActiveAdmin.register Store, :as => 'My Store' do
menu :if => proc{ !current_user.is_admin? },
:label => 'My Store'
actions :show, :edit, :update
controller do
def index
redirect_to(admin_my_store_url(current_user.store))
end
end
end