joya CanCan | no puede: índice, Usuario
-
23-09-2019 - |
Pregunta
modelo de usuario muy básico, deseo que el usuario admin: administrar todos
No más puede hacerlo: índice, usuario y algunas otras opciones, pero cuando intento y bloquear a los usuarios no de administrador de ver el índice de usuario, el usuario administrador tampoco tiene acceso.
Este es mi 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
¿Qué puedo hacer para detener todos los usuarios bloqueados en el índice del usuario?
Regards
Dan
Solución
Algo mal con if-else en el código.
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
Y también que no tiene que negar el usuario no administrador para asignar funciones, obviamente, (no puede: assign_role, Usuario).
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow