Adding missing Login controller.

This commit is contained in:
sergiotarxz 2021-06-06 00:29:49 +02:00
parent 23cda8fb19
commit 03bc585b9c
Signed by: sergiotarxz
GPG Key ID: E5903508B6510AC2
1 changed files with 31 additions and 0 deletions

View File

@ -0,0 +1,31 @@
package BeastBB::Controller::Login;
use 5.30.3;
use strict;
use warnings;
use Mojo::Base 'BeastBB::Controller';
sub GetLogin {
my $self =shift;
$self->render;
}
sub Login {
my $self = shift;
my $user_manager = BeastBB::DAO::UserManager->new( app => $self );
my $username = $self->param('username');
my $password = $self->param('password');
my $wrong_auth_error = 'Credentials invalid or user not found.';
return $self->reply->exception('Request not understood.')->rendered(400)
if !defined $username || !defined $password;
my $maybe_user = $user_manager->Get( username => $username );
my $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('/');
}
1;