Salve, procurei pelo fórum essa questão e acabei não encontrando, peço desculpa caso já tenha sido discutida.
Bom, vamos la:
Estou fazendo uma aplicação onde os usuarios possam cadastrar informações. Criei um login seguro com hash + salt, protecao contra ataques cross-site e uma whitelist dos controladores para os que não estão cadastrados. Até aqui tudo funciona perfeitamente.
O problema eh que uso a mesma views do controlador para atividades administrativas, e escondo da view de quem não esta logado usando um simples:
<% if session[:usuario_id] %>
...
<% end %>
porém nao sei como evitar que alguém digite no browser no controlador com a view index liberada uma ação que não quero que tenham acesso.
Exemplo, quero permitir o acesso a:
mas não a ação:
do mesmo controlador.
Alguém tem alguma idéia de como posso fazer isso sem precisar criar um controlador novo e como novas views so para a listagem?
def verifica_permissao
unless session[:usuario_id] # no meu caso faço a autenticação da sessao com o a id do usuario
session[:original_uri] = request.request_uri # para o browser não esquecer o pedido
flash[:notice] = "Faça o login"
redirect_to “/login” # meu formulário de login (precisa ser definido nas config/routes.rb)
end
end