declarativa de autorização e has_and_belongs_to_many
-
14-11-2019 - |
Pergunta
Eu tenho um pouco de problema com declarativa-autorização.Eu tenho um Usuário e Modelo de Papel com uma associação has_and_belongs_to_many.
Eu criei uma Função chamada :moderador na minha authorization_rules.rb
É possível que um Usuário com a Função de Moderador obtém apenas os Usuários que têm o Papel Moderador atribuído a ele??--> Usuário.with_permissions_to(:índice)
Eu pensei que seria possível, de modo a:
role :moderator do
has_permission_on :users, :to => :index do
if_attribute :roles => contains { ????? }
end
end
Eu também criei uma named_scope no meu Modelo de Usuário, porque eu pensei que ele iria ajudar...
class User
has_and_belongs_to_many :roles
named_scope :by_role, lambda { |role|
{
:include => :roles,
:conditions => {"roles.name" => role}
}
}
end
Alguém sabe se é possível fazer isso com declarative_authorization?
Obrigado por sua ajuda!
Solução
Eu fiz algo semelhante em um dos meus projetos, mas encontrado dec_auth realmente confuso no momento.Eu acho que isso é o que você precisa para fazer:
authorization_rules.rb:
role :moderator do
has_permission_on :users, :to => :index
end
Modelo De Usuário:
class User < ActiveRecord::Base
using_access_control
end
Controlador:
@users = User.with_permissions_to(:index)
Deixe-me saber se isso não funcionar.