gmarche/src/Auth/Action/LogoutAction.php

54 lines
1.3 KiB
PHP

<?php
namespace App\Auth\Action;
use App\Auth\DatabaseAuth;
use Framework\Renderer\RendererInterface;
use Framework\Response\RedirectResponse;
use Framework\Session\FlashService;
use Psr\Container\ContainerInterface;
use Psr\Http\Message\ServerRequestInterface;
/**
* Class LogoutAction
* @package App\Auth\Action
*/
class LogoutAction
{
/**
* @var RendererInterface
*/
private $renderer;
/**
* @var DatabaseAuth
*/
private $auth;
/**
* @var FlashService
*/
private $flashService;
private $container;
public function __construct(RendererInterface $renderer, DatabaseAuth $auth, FlashService $flashService
, ContainerInterface $container)
{
$this->renderer = $renderer;
$this->auth = $auth;
$this->flashService = $flashService;
$this->container = $container;
}
public function __invoke(ServerRequestInterface $request)
{
$gmarchePrefix = $this->container->get('gmarche.prefix');
if(!isset($_SESSION)) {
session_start();
}
unset($_SESSION['user']);
$this->auth->logout();
$this->flashService->success('Vous êtes maintenant déconnecté');
return new RedirectResponse("$gmarchePrefix");
}
}