Guest User

Untitled

a guest
Sep 6th, 2018
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.96 KB | None | 0 0
  1. # Make sure user is logged in
  2. hook 'before' => sub {
  3. if (! session('user') && request->path_info !~ m{^/login}) {
  4. var requested_path => request->path_info;
  5. request->path_info('/login');
  6. }
  7. };
  8.  
  9. get '/login' => sub {
  10. session->destroy;
  11. # Display a login page; the original URL they requested is available as
  12. # vars->{requested_path}, so could be put in a hidden field in the form
  13. template 'login', { path => vars->{requested_path} };
  14. };
  15.  
  16. get '/logout' => sub {
  17. session->destroy;
  18. redirect '/';
  19. };
  20.  
  21. post '/login' => sub {
  22. my $user_params = {
  23. username => param( 'username' ),
  24. password => param( 'password' ),
  25. };
  26.  
  27. my $error = form_validator_error( 'login', $user_params );
  28.  
  29. if( $error ){
  30. send_error( $error );
  31. }
  32. my $user = $app_store->is_valid_user( $user_params );
  33. if( not $user ){
  34. send_error( "Login failed" );
  35. }
  36.  
  37. session user => $user;
  38. redirect params->{path} || '/';
  39. };
Add Comment
Please, Sign In to add comment