auth = $auth; $this->router = $router; $this->userTable = $userTable; $this->session = $session; } public function process(ServerRequestInterface $request, DelegateInterface $delegate): ResponseInterface { $url_part = explode('/',$request->getServerParams()['PHP_SELF'] ?? '/'); $username = $url_part[4]; if (is_null($username)) { $user = $this->auth->getUser() ?: $this->userTable->findBy('username', $request->getAttribute('user')); } else { $user = $this->auth->getUser() ?: $this->userTable->findBy('username', $username); } if (is_null($user)) { (new FlashService($this->session))->error('Vous devez vous connecter pour accéder à cette page'); return new RedirectResponse($this->router->generateUri('auth.login')); } else { $this->session->set('username',$user->username); $this->session->set('role',$user->role); $_SESSION['connecte'] = $user->username; $_SESSION['role'] = $user->role; } return $delegate->process($request->withAttribute('user', $user)); } }