[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