我只能通过`can:manage,:all`通过cancancan访问rails_admin

时间:2019-07-20 02:41:09

标签: ruby-on-rails ruby-on-rails-5 rails-admin cancancan

在轨道上5.我正在尝试将cancancan 3.0.1rails_admin (1.4.2)集成在一起,并且在大多数情况下都可以使用。我的问题是,如果我给用户can :manage, :all,我就只能使路由正确工作,否则我会被cancancan拒绝访问

这是我的cancancan能力代码。在这种情况下,超级管理员可以获得访问权限,而使用can :manage, Project的普通管理员则不能:

class Ability
  include CanCan::Ability

  def initialize(user)
    can :read, :all                 # allow everyone to read everything

    return unless user && user.admin?

    can :access, :rails_admin      
    can :read, :dashboard           # allow access to dashboard

    if user.superadmin?
      can :manage, :all             # allow superadmins to do anything
    elsif user.admin?
      can :manage, Project
    end
  end
end

无论如何,是否允许用户在没有manage :all的情况下进入这条路线?

0 个答案:

没有答案