application = $app; $pdo = $this->application->getComponent('PDO'); assert($pdo instanceof PDO); User::$pdo = $pdo; } /** * {@inheritDoc} * @see \Psr\Http\Server\MiddlewareInterface::process() */ public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $user = $this->application->getComponent('Piko\User'); assert($user instanceof \Piko\User); $router = $this->application->getComponent('Piko\Router'); assert($router instanceof \Piko\Router); $loginUrl = $router->getUrl('user/default/login'); $params = $request->getServerParams(); if ($user->isGuest() && $params['REQUEST_URI'] != $loginUrl) { $response= new Response(); return $response->withHeader('Location', $loginUrl); } return $handler->handle($request); } }