[SP-pm] Validar session no Catalyst

Eden Cardim edencardim at gmail.com
Sun Jul 10 20:18:40 PDT 2011


>>>>> "Lucas" == Lucas Moraes <mineiro em live.be> writes:

    Lucas> para validar:
    Lucas> sub end :Private {
    Lucas>     my ( $self, $c ) = @_;
    Lucas>     if(!$c->user_exists){
    Lucas>         $c->res->redirect('/login');
    Lucas>     }
    Lucas> }

Depende do que você quer fazer. Geralmente você quer verificar se o
usuários está logado *antes* de rodar o código pra poder barrar. Vale
lembrar também, que o redirect só seta os cabeçalhos adequados sem mudar
o fluxo de execução do código. Se você quer impedir a execução de
qualquer código sem que o usuário esteja autenticado, faça assim:

--8<---------------cut here---------------start------------->8---
    sub begin :Private {
      my ( $self, $c ) = @_;
         if(!$c->user_exists){
             $c->res->redirect('/login');
             $c->detach;
         }
    }
--8<---------------cut here---------------end--------------->8---

    Lucas> para pegar valores do Args:
    Lucas> sub alterar :LocalRegex('[0-9]') {
    Lucas>     my ( $self, $c, @get) = @_;
    
    Lucas>     $c->stash->{valor} =  $get[0];
    Lucas>     $c->forward('View::TT');
    Lucas> }

Primeiro, você precisa de capturas na regex, segundo, capturas não vem
como argumentos, você precisa acessar através do método
$c->req->captures, fica mais ou menos assim:

--8<---------------cut here---------------start------------->8---
sub alterar :LocalRegex('([0-9])') {
    my($self, $c) = @_;
    $c->stash->{valor} = $c->req->captures->[0];
    $c->forward('View::TT');
}
--8<---------------cut here---------------end--------------->8---

-- 
   Eden Cardim       Need help with your Catalyst or DBIx::Class project?
  Code Monkey                    http://www.shadowcat.co.uk/catalyst/
 Shadowcat Systems Ltd.  Want a managed development or deployment platform?
http://blog.edencardim.com/            http://www.shadowcat.co.uk/servers/
http://twitter.com/#!/edenc


More information about the SaoPaulo-pm mailing list