[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