Adding logout.
This commit is contained in:
parent
3c47f87f62
commit
a549732ce7
@ -97,7 +97,7 @@ sub PrepareCommonRoutes {
|
||||
$routes->get('/')->to('Main#Index');
|
||||
$routes->get('/login')->to('Login#GetLogin');
|
||||
$routes->post('/login')->to('Login#Login');
|
||||
$routes->post('/logout')->to('Main#Logout');
|
||||
$routes->post('/logout')->to('Login#Logout');
|
||||
}
|
||||
|
||||
sub PrepareInstallationRoutes {
|
||||
|
@ -8,13 +8,14 @@ use warnings;
|
||||
use Mojo::Base 'BeastBB::Controller';
|
||||
|
||||
sub GetLogin {
|
||||
my $self =shift;
|
||||
my $self = shift;
|
||||
$self->render;
|
||||
}
|
||||
|
||||
sub Login {
|
||||
my $self = shift;
|
||||
my $error_url = Mojo::URL->new('/')->query( error => 'You are already logged in.');
|
||||
my $self = shift;
|
||||
my $error_url =
|
||||
Mojo::URL->new('/')->query( error => 'You are already logged in.' );
|
||||
return $self->redirect_to($error_url) if !$self->LoggedUser->IsError;
|
||||
my $user_manager = BeastBB::DAO::UserManager->new( app => $self );
|
||||
my $username = $self->param('username');
|
||||
@ -23,11 +24,19 @@ sub Login {
|
||||
return $self->reply->exception('Request not understood.')->rendered(400)
|
||||
if !defined $username || !defined $password;
|
||||
my $maybe_user = $user_manager->Get( username => $username );
|
||||
$error_url = Mojo::URL->new('/')->query( error => $wrong_auth_error );
|
||||
$error_url = Mojo::URL->new('/')->query( error => $wrong_auth_error );
|
||||
return $self->redirect_to($error_url)
|
||||
if $maybe_user->IsError
|
||||
|| !$maybe_user->Content->CheckPasswordLogin( password => $password );
|
||||
$self->session->{username} = $username;
|
||||
return $self->redirect_to('/');
|
||||
}
|
||||
|
||||
sub Logout {
|
||||
my $self = shift;
|
||||
$self->reply->exception('You are not logged in.')->rendered(401)
|
||||
if $self->LoggedUser->IsError;
|
||||
delete $self->session->{username};
|
||||
$self->redirect_to('/');
|
||||
}
|
||||
1;
|
||||
|
@ -1,7 +1,20 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BeastBB</title>
|
||||
<link rel="stylesheet" href="/css/index.css"/>
|
||||
<head>
|
||||
<body>
|
||||
<h1>Welcome to BeastBB <%= defined $user ? $user->Username : 'anonymous user' %>.</h1>
|
||||
% if (!defined $user) {
|
||||
<p><a href="/login">Login</a> <a href="/signup">Signup</a>
|
||||
% }
|
||||
% if (defined $user) {
|
||||
<form action="/logout" method="post">
|
||||
<input type="submit" class="fake-a" value="Logout"/>
|
||||
</form>
|
||||
% }
|
||||
% if (defined $error) {
|
||||
<p style="color: red;"><%= $error %></p>
|
||||
% }
|
||||
</body>
|
||||
</html>
|
||||
|
Loading…
x
Reference in New Issue
Block a user