52 lines
1.2 KiB
PHP
52 lines
1.2 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');
|
|
session_start();
|
|
unset($_SESSION['user']);
|
|
$this->auth->logout();
|
|
$this->flashService->success('Vous êtes maintenant déconnecté');
|
|
return new RedirectResponse("$gmarchePrefix");
|
|
}
|
|
}
|