CanCan在Rails中的能力 - 给予部分管理

时间:2014-11-24 17:37:01

标签: ruby-on-rails activeadmin cancan

我有三个AdminUsers角色:

  • 管理员
  • 编辑
  • 学生

我需要编辑器能够管理(添加/查看/删除)其角色为student的AdminUser帐户。但是,他无法查看哪个角色是管理员或编辑者。

使用以下代码,他只能在没有创建/删除/编辑的情况下查看

      if user.role?(:admin)
        can :manage, :all
      elsif user.role?(:editor)
        can :read, ActiveAdmin::Page, :name => "Dashboard"
        can :manage, :all
        cannot :manage, AdminUser
        can :manage, AdminUser, :role => :student

      else
        can :read, :all
      end

1 个答案:

答案 0 :(得分:0)

如果我理解正确,那么您说作为编辑的用户应该能够管理作为学生的其他用户的帐户。如果是这种情况,这应该有效:

  if user.role?(:admin)
    can :manage, :all
  elsif user.role?(:editor)
    can :read, ActiveAdmin::Page, :name => "Dashboard"
    can :manage, AdminUser, :role => :student
  else
    can :read, :all
  end