[SP-pm] Validar session no Catalyst
Renato Santos
renato.cron at gmail.com
Mon Jul 11 05:43:20 PDT 2011
Sem querendo fazer flamewar, mas este código é maior e menos MVC do que o
Catalyst.
Brinks a parte,
o modulo Catalyst::Lite é uma brincadeira!
2011/7/11 Nelson Ferraz <nferraz at gmail.com>
> Lucas> para validar:
> Lucas> sub end :Private {
> Lucas> my ( $self, $c ) = @_;
> Lucas> if(!$c->user_exists){
> Lucas> $c->res->redirect('/login');
> Lucas> }
> Lucas> }
> Lucas>
> 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> }
>
> Sem querer iniciar uma flamewar, mas este é apenas mais um exemplo
> onde o Catalyst complica demais algo que deveria ser simples.
>
> Veja como isso pode ser feito no Mojolicious:
>
> #!/usr/bin/perl
>
> use Mojolicious::Lite; # implicitly use strict and warnings
>
> # 1: verificar uma variável de sessão
>
> get '/' => sub {
> my $self = shift;
>
> my $username = $self->session('username');
>
> self->redirect_to('/login') if !$username;
>
> $self->render( text => "Hello, $username" );
> };
>
> # 2: definir uma variável de sessão
>
> get '/login' => sub {
> my $self = shift;
>
> my $username = $self->param('username');
> my $password = $self->param('password');
>
> if ($username eq 'foo' and $password eq 'bar') {
> $self->session( username => $username );
> $self->redirect_to('/');
> }
>
> $self->render( text => "Please use:
> http://localhost:3000/login?username=xxx;password=yyy" );
> };
>
> # 3: remover uma variável de sessão
>
> get '/logout' => sub {
> my $self = shift;
>
> my $username = $self->session('username');
> $self->session( username => undef ); # poderia ter usado "expire"
>
> $self->render( text => "Bye bye, $username" );
> };
>
> app->start();
>
> __END__
>
> Mais informações:
>
>
> http://search.cpan.org/~sri/Mojolicious-1.64/lib/Mojolicious/Lite.pm#Sessions
>
> []s
>
> Nelson
>
> PS: Até onde eu sei, o Eden estava trabalhando em um projeto que
> traria esse tipo de simplicidade para o Catalyst. Em que pé está esse
> projeto, Eden?
> =begin disclaimer
> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
> SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
--
Renato Santos
http://www.renatocron.com/blog/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20110711/7f9cdfb1/attachment.html>
More information about the SaoPaulo-pm
mailing list