public function __invoke(ServerRequestInterface $request, ResponseInterface $response, callable $next = null) { $enteredCorrectKey = $this->checkSiteAccess($request); if (!$enteredCorrectKey) { // Show error page $page = new ErrorAccessCodeRequiredPage(); return Responses::getPageResponse($this->website, new Request($request), $page, $response); } // Render page, add access key cookie $updatedResponse = $next ? $next($request, $response) : $response; return $this->withSiteAccessCookie($updatedResponse); }
public function __invoke(ServerRequestInterface $requestInterface, ResponseInterface $response, callable $next = null) { $request = new Request($requestInterface); // Load page try { $pageName = $request->getPageName(); // Switch to install page if website is not installed yet if (!$this->website->getConfig()->isDatabaseUpToDate()) { $pageName = "install"; } $page = $this->loadPage($pageName); } catch (NotFoundException $e) { $page = new Error404Page(); } // Login check $minimumRank = $page->getMinimumRank(); if ($minimumRank != Authentication::RANK_LOGGED_OUT && !$this->website->getAuth()->check($minimumRank, false)) { // Login failure $page = new ErrorLoginRequiredPage($minimumRank); } // Get response $updatedResponse = $next ? $next($requestInterface, $response) : $response; return Responses::getPageResponse($this->website, $request, $page, $updatedResponse); }