CanCan gem | kann nicht: Index, Benutzer
-
23-09-2019 - |
Frage
Sehr einfaches Benutzermodell mag ich den Admin-Benutzer: Verwalten alle
sonst kann nicht: index, Benutzer und einige andere Optionen, aber wenn ich aus der Betrachtung den Benutzerindex nicht Admin-Benutzer versuchen und blockieren, der Admin-Benutzer hat auch keinen Zugriff.
Das ist mein 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
Was kann ich tun, alle Benutzer daran zu hindern, Benutzerindex blockiert werden?
Viele Grüße
Dan
Lösung
Stimmt etwas nicht mit if-else in Code.
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
Und auch Sie müssen nicht Benutzer ohne Administratorrechte zuweisen Rolle leugnen offensichtlich (nicht: assign_role, Benutzer).
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow