Filter renderizando página com layout quebrado
28/09/2015 19:37
0
Prezados, depois de algum BOM TEMPO longe do desenvolvimento GRails, voltei (dessa vez espero que de vez). Pois bem, estou recomeçando do começo para dar uma recapitulada em tudo e nada melhor do que começar pelo livro do nosso amigo Kico.

Fiz uma implementação simples do Filter e quando o return true ocorre, o layout da página é simplesmente detonado. Não estou encontrando o que estou deixando escapar.

class AcessoFilters {
def filters = {
  acesso(controller:'*', action:'*') {
before = {
if(session['usuario']) {
return true
} else {
if(controllerName == null || actionName == 'autenticar') {
return true
} else {
flash.message = 'Você deve estar logado para acessar essa página.'
redirect(uri: '/')
return false
}
}
}
  }
}
}?

Se comentar o que está dentro do before, funfa de boa. Minha index ficou o mais simples possível, será que apaguei o que não deveria da index original?

<!DOCTYPE html>
<html>
<head>
<meta name="layout" content="main"/>
<title>PJ - Control</title>
</head>
<body>
<g:form controller="autenticacao" action="autenticar">
E-mail<br/>
<input type="email" name="email"/><br/>
Senha<br/>
<input type="password" name="senha"/><br/>
<input type="submit" value="Login"/>
</g:form>
<g:if test="${flash.message}">
<div class="message" role="status">${flash.message}</div>
</g:if>
</body>
</html>


Grato a quem puder ajudar um enferrujado... :D
Tags: filter


0
Você esta retornando false para o plugin do assets-pipeline... tente fazer algo como:
?class AcessoFilters {

/* controller permitidos sem login */
def anonymous = ['assets', 'autenticar']
    def filters = {
        acesso(controller:'*', action:'*') {
            before = {
            if(session['usuario']) {
               return true
            } else {
               if(anonymous.contains(controllerName)) {
                  return true
               } else {
                  flash.message = 'Você deve estar logado para acessar essa página.'
                  redirect(uri: '/')
                  return false
               }
            }
            }
        }
    }
}
29/09/2015 08:24


0
Adriano,

se estiver usando o asset pipeline, verifique se não está bloqueando o controlador asset. Isto normalmente causa este tipo de problema.


0
Senhores... Vocês são FO..S... Rsrsrsrs :D
Assim que chegar em casa vou testar a solução. Não me toquei sobre o controlador do asset. Assim que validar dou o retorno aqui.
Abs ;)
29/09/2015 12:07


0
Só pra dar o feedback... Funcionou perfeito a solução... ;)

Obrigado aos senhores.
29/09/2015 21:47



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto