カンカン宝石|することはできません:インデックス、ユーザー

StackOverflow https://stackoverflow.com/questions/2367169

  •  23-09-2019
  •  | 
  •  

質問

管理するすべての

非常に基本的なユーザー・モデルは、私はに管理者ユーザーを望みます

それ以外のことはできません:インデックス、ユーザーや他のいくつかのオプションが、私がしようとするユーザーインデックスを表示してから、非管理者ユーザーをブロックする場合、管理者ユーザーは、アクセスを持っていません。

これは私のability.rb

class Ability
  include CanCan::Ability

  def initialize(user)
    user ||= User.new #guest user

    can :manage, :all if user.role == "admin" #if user.admin? can :manage, :all
    can :assign_role, User 

    else
      can :read, :all
      can :create, User


      cannot :assign_role, User
      cannot :index, User

      can [:show, :edit, :update], User do |current_user|
              user.id == current_user.id || user.role == "admin"
            end



  end
end

私はユーザーインデックス?

から遮断され、すべてのユーザーを停止するために何ができます

よろしく

ダン

役に立ちましたか?

解決

のif-elseコード内で何かが間違っています。

if user.role == "admin"
  can :manage, :all
  can :assign_role, User 

else
  can :read, :all
  can :create, User


  cannot :assign_role, User
  cannot :index, User
  can [:show, :edit, :update], User do |current_user|
    user.id == current_user.id || user.role == "admin"
  end

end

そしてまた、あなたが明らかに割り当てロールに非管理者ユーザーを否定する必要はありません(できません:assign_role、ユーザー)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top