【问题标题】:Active Admin + cancan. How can I remove header link keeping cancan ability活动管理员 + cancan。如何删除标题链接保持 cancan 能力
【发布时间】:2014-02-11 21:55:19
【问题描述】:

我将 ActiveAdminCan Can gem 一起使用,我遇到了以下情况:

  • 两个角色:adminother
  • 包含三个链接的管理员标题:link1 |链接2 |链接3
  • 链接 3 代表视频资源。
  • 管理员用户可以看到链接 1、2 和 3
  • 其他用户可以看到链接 1 和 2,但不能看到 3

所以,要让link 3消失。我可以有一个 abilities.rb 文件

can :manage, Video #for admin users

其他用户什么都没有。这将使 link 3 消失。 但是,在我的应用程序的其他部分,我希望 其他 用户能够“阅读视频”。当我添加此功能时,链接再次出现在标题中。

问题是:我怎样才能保存我的:

can :read, Video #for other users

同时消失链接3

【问题讨论】:

  • 如果用户有权查看该资源,为什么您希望菜单链接丢失?
  • 这是客户要求。 “其他”用户可以从应用程序端分析视频,但客户端不希望这些用户从管理端看到视频(是的,“其他用户”可以在管理端访问其他东西)。我只是不希望活动管理员根据定义的能力自动添加链接。

标签: ruby-on-rails ruby-on-rails-3 permissions activeadmin cancan


【解决方案1】:

您应该能够为那些拥有 CanCan 访问权限但不应该看到菜单项的人覆盖默认菜单可见性:

ActiveAdmin.register Video do
  menu false if current_user.other?

  # ...
end

【讨论】:

  • current_user 它没有在那个级别上定义。 +1 提示
【解决方案2】:
ActiveAdmin.register Video do
  menu :if => proc { !current_user.other? }

  # ...
end

【讨论】:

  • 我认为这个解决方案仍然可以通过直接输入 URL 来访问菜单功能。有谁知道更好的解决方案?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多