Skip to content
Snippets Groups Projects
Commit fe5dea35 authored by Moreau Elise's avatar Moreau Elise
Browse files

add Log in action which use Session variables

parent 7f89dc63
No related branches found
No related tags found
No related merge requests found
<?php
declare(strict_types=1);
namespace App\Application\Actions\User;
use Psr\Http\Message\ResponseInterface as Response;
use App\Domain\User\UserNotFoundException;
class LogInUserAction extends UserAction
{
/**
* {@inheritdoc}
*/
protected function action(): Response
{
$parsedRequestBody = (array)$this->request->getParsedBody();
$username = $this->checkvalue($parsedRequestBody['username']);
$password = $this->checkvalue($parsedRequestBody['password']);
$user = $this->userRepository->findOneBy(array('username' => $username));
if (!isset($user)) {
throw new UserNotFoundException();
}
if (!password_verify($password, $user->getPassword())) {
$_SESSION['message'] = 'Username or password unknown.';
return $this->twig->render($this->response, "/user/log_in.twig", ["formstatus" => "error", "session" => $_SESSION]);
}
$_SESSION['userId'] = $user->getId();
$_SESSION['logged'] = true;
return $this->response
->withHeader('Location', '/account')
->withStatus(302);
}
/**
* Remove html chars
* @return string
*/
protected function checkValue($value): string
{
$value = strip_tags($value);
$value = htmlspecialchars_decode($value);
return $value;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment