Changeset 9907 for lang/perl/Chaostr

Show
Ignore:
Timestamp:
04/19/08 21:45:19 (7 years ago)
Author:
tomyhero
Message:

lang/perl/Chaostr : refactoring Login.pm

Location:
lang/perl/Chaostr/trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/Chaostr/trunk/Makefile.PL

    r9016 r9907  
    88requires 'Catalyst::Plugin::Static::Simple'; 
    99requires 'Catalyst::Action::RenderView'; 
     10requires 'Catalyst::Plugin::Session::DynamicExpiry'; 
    1011requires 'Tset::Spelling' => 0; 
    1112requires 'YAML';    # This should reflect the config file format you've chosen 
  • lang/perl/Chaostr/trunk/lib/Chaostr/Web/Controller/Login.pm

    r9278 r9907  
    3030    return if $c->req->method eq 'GET'; 
    3131 
    32  
    33     $c->form({ 
    34         required => [qw/username password/] 
    35     }); 
     32    $c->form( {  
     33        required => [qw/username password/] , 
     34        optional => [qw/auto/], 
     35    } ); 
    3636 
    3737    my $v = $c->form->valid; 
    3838 
    39     $c->log->debug( $v ); 
    40  
    41     return if  $c->form->has_error; 
     39    return if $c->form->has_error; 
    4240 
    4341    $c->authenticate( 
     
    4745    ); 
    4846 
    49     if ( !$c->user_exists ) { 
    50         # ログインできてなかった場合 
    51     } 
     47    # ログインできてなかった場合 
     48    return if !$c->user_exists ;  
    5249 
    53     if ( $c->req->param('auto') ) { 
     50    # 自動ログイン。セッションを長生きさせる。 
     51    if ( $v->{'auto'} ) { 
    5452        $c->session->{auto_login} = 1; 
    55  
    5653        # 2 週間 
    57         $c->session_time_to_live( 1_209_600 ); 
     54        $c->session_time_to_live(1_209_600); 
    5855    } 
    5956    else { 
     
    6259 
    6360    $c->log->info( $c->user->name . '(' . $c->req->address . ') logined' ); 
     61 
    6462    $c->model('DBIC::Users')->find( $c->user->id ) 
    6563        ->update( { lastlogin_at => $c->datetime() } ); 
    6664 
     65    # 明示的にセッションを保存 
     66    $c->finalize_session; 
    6767    return $c->res->redirect( $c->uri_for(q{/}) ); 
    6868} 
     
    7979        $c->delete_session; 
    8080        $c->logout; 
     81        # 明示的にセッションを保存 
     82        $c->finalize_session; 
    8183    } 
    8284 
     
    8789 
    8890Daisuke Komatsu C<< <taro __at__ cpan.org> >> 
     91 
     92Tomohiro Teranishi <tomohiro.teranishi@gmail.com> 
    8993 
    9094=head1 LICENSE