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!

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top