Pergunta

Eu tenho um modelo de usuário cujo acesso controlado pelo ACL9.

dentro UsersController:

#ACL9 related stuff
before_filter :load_user, :only => [:show]
  access_control do
    allow :owner, :of => :user, :to => [:show]
  end

def load_user
  user = User.find(params[:id])
end

dentro ApplicationController:

rescue_from 'Acl9::AccessDenied', :with => :access_denied

def access_denied
  authenticate_user! # a method from Devise
end

Não há problema em digitar URL para assinar a página http://localhost:3000/users/sign_in, mas é um problema quando, por exemplo, digito primeiro a página do usuário, que devo ser redirecionada para entrar automaticamente na página através da lógica acima.

http://localhost:3000/users/1 => Infinito redirecionou o inferno. Tenta redirecionar de volta para users/1 novamente em vez de dirigir para users/sign_in.

Alguém tem uma opinião sobre o que pode estar errado?

Foi útil?

Solução

Eu acho que você não deve usar o ACL9 no controlador de usuário. Como você não é autenticado, você não tem direitos e não autenticará: d. Você pode proibir os usuários de excluir, por isso deve ser como:

access_control :only => [:destroy] do
      allow :admin
end

Para o UsuárioController, você deve substituir seu access_control se quiser deixá -lo como está no controlador de aplicativos.

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