当我有用户和单独的管理员时,如何使用CanCanCan进行授权



我的应用程序使用不同的模型来管理用户和管理员。使用CanCanCan为这些模型实施授权的最佳方法是什么?

您需要在Cancan能力文件中测试用于授权的对象类型。

如下所示:

class Ability
  include CanCan::Ability
  def initialize(user_or_admin)
    case user_or_admin.class.name
    when 'User'
      can :read, :post
    when 'Admin'
      can :manage, :all
    else
      user = User.new # guest user
      # ... other permissions for guests
    end
  end
end

最新更新