在轨道上5.我正在尝试将cancancan 3.0.1
与rails_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
的情况下进入这条路线?