Autorización declarativa y has_and_belongs_to_many
-
14-11-2019 - |
Pregunta
Tengo un pequeño problema con la autorización declarativa.Tengo un modelo y un modelo a seguir con una asociación has_and_belongs_to_many.
He creado un rol llamado: Moderador en mi autorización_rules.rb
¿Es posible que un usuario con el moderador de roles solo obtenga los usuarios que tienen la función de moderador asignada?-> usuario.with_permissions_to (: índice)
Pensé que sería posible así:
role :moderator do
has_permission_on :users, :to => :index do
if_attribute :roles => contains { ????? }
end
end
También creé un Named_Scope en mi modelo de usuario porque pensé que ayudaría a ...
class User
has_and_belongs_to_many :roles
named_scope :by_role, lambda { |role|
{
:include => :roles,
:conditions => {"roles.name" => role}
}
}
end
¿Alguien sabe si es posible hacer esto con Declarative_Autorization?
¡Gracias por su ayuda!
Solución
I did something similar in one of my projects but found dec_auth really confusing at the time. I think this is what you need to do:
authorization_rules.rb:
role :moderator do
has_permission_on :users, :to => :index
end
User Model:
class User < ActiveRecord::Base
using_access_control
end
Controller:
@users = User.with_permissions_to(:index)
Let me know if that doesn't work.