【发布时间】:2014-01-23 17:27:10
【问题描述】:
我有一个有两个角色的应用程序,超级和管理员。超级可以做所有事情,管理员应该可以做除类别之外的所有事情。我已经实现了以下功能,但它仍然允许管理员访问类别:
def initialize(user)
user ||= User.new # guest user (not logged in)
if user.has_role? :super
can :manage, :all
elsif user.has_role? :admin
cannot :manage, :categories
can :manage, :all
end
end
如果我将其更改为以下内容,它会将管理员锁定在一切之外。
def initialize(user)
user ||= User.new # guest user (not logged in)
if user.has_role? :super
can :manage, :all
elsif user.has_role? :admin
can :manage, :all
cannot :manage, :categories
end
end
我的所有控制器中都有load_and_authorize_resource,但仍然无法弄清楚。
【问题讨论】:
标签: ruby-on-rails devise ruby-on-rails-4 cancan