カンカン宝石|することはできません:インデックス、ユーザー
-
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、ユーザー)。
所属していません StackOverflow