From 03bc585b9c7cd0eee46ada4509728c1f99feed97 Mon Sep 17 00:00:00 2001 From: sergiotarxz Date: Sun, 6 Jun 2021 00:29:49 +0200 Subject: [PATCH] Adding missing Login controller. --- lib/BeastBB/Controller/Login.pm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 lib/BeastBB/Controller/Login.pm diff --git a/lib/BeastBB/Controller/Login.pm b/lib/BeastBB/Controller/Login.pm new file mode 100644 index 0000000..95bb8f1 --- /dev/null +++ b/lib/BeastBB/Controller/Login.pm @@ -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;