From 37468993f611216afaf833c21939fc86464601ae Mon Sep 17 00:00:00 2001 From: nox Date: Tue, 10 Dec 2019 14:29:27 +0100 Subject: [PATCH] =?UTF-8?q?Avancement=20sur=20droits=20d'acc=C3=A8s=20?= =?UTF-8?q?=C3=A0=20l'url=20dashboard/user?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Admin/AdminModule.php | 4 +++- src/Framework/Auth/LoggedInMiddleware.php | 16 ++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/Admin/AdminModule.php b/src/Admin/AdminModule.php index 2921494..03b3884 100644 --- a/src/Admin/AdminModule.php +++ b/src/Admin/AdminModule.php @@ -2,8 +2,10 @@ namespace App\Admin; +use App\Account\Action\AccountAction; use App\Account\Action\ActiveAction; use App\Auth\Action\PasswordForgetAction; +use Framework\Auth\LoggedInMiddleware; use Framework\Module; use Framework\Renderer\RendererInterface; use Framework\Renderer\TwigRenderer; @@ -21,7 +23,7 @@ class AdminModule extends Module ) { $router->get('/dashboard', DashboardAction::class, 'dashboard'); - $router->get('/dashboard/{user:[a-zA-Z\-0-9]+}', DashboardUserAction::class, 'dashboard.user'); + $router->get('/dashboard/{user:[a-zA-Z\-0-9]+}', [LoggedInMiddleware::class, DashboardUserAction::class], 'dashboard.user'); $router->get('/activation', ActiveAction::class, 'account.active'); $router->post('/activation', ActiveAction::class); $router->any('/password_reinit', PasswordForgetAction::class, 'auth.password'); diff --git a/src/Framework/Auth/LoggedInMiddleware.php b/src/Framework/Auth/LoggedInMiddleware.php index 3534cb2..0e2882a 100644 --- a/src/Framework/Auth/LoggedInMiddleware.php +++ b/src/Framework/Auth/LoggedInMiddleware.php @@ -2,6 +2,11 @@ namespace Framework\Auth; use Framework\Auth; +use Framework\Actions\RouterAwareAction; +use Framework\Response\RedirectResponse; +use Framework\Router; +use Framework\Session\FlashService; +use Framework\Session\SessionInterface; use Interop\Http\ServerMiddleware\DelegateInterface; use Interop\Http\ServerMiddleware\MiddlewareInterface; use Psr\Http\Message\ResponseInterface; @@ -15,16 +20,23 @@ class LoggedInMiddleware implements MiddlewareInterface */ private $auth; - public function __construct(Auth $auth) + public function __construct(Auth $auth, Router $router) { $this->auth = $auth; + $this->router = $router; } public function process(ServerRequestInterface $request, DelegateInterface $delegate): ResponseInterface { $user = $this->auth->getUser(); if (is_null($user)) { - throw new ForbiddenException(); + //echo "is null"; + //die(); + //throw new ForbiddenException(); + //return $this->redirect('auth.login'); + //$this->session->set('auth.login', $request->getUri()->getPath()); + //(new FlashService($this->session))->error('Vous devez posséder un compte pour accéder à cette page'); + return new RedirectResponse($this->router->generateUri('auth.login')); } return $delegate->process($request->withAttribute('user', $user)); }