get(OtWebsiteRepository::class); $devMode = $_SERVER['TYPO3_CONTEXT'] == "Development"; if (!$GLOBALS['TYPO3_REQUEST']) { return GeneralUtility::makeInstance(ErrorController::class)->pageNotFoundAction( $request, 'The requested website does not exist', ['code' => PageAccessFailureReasons::PAGE_NOT_FOUND] ); } $website = $GLOBALS['TYPO3_REQUEST']->getAttribute('ot_website'); $params = $request->getQueryParams(); if (!$website['uid'] > 0) { return GeneralUtility::makeInstance(ErrorController::class)->pageNotFoundAction( $request, 'The requested website does not exist', ['code' => PageAccessFailureReasons::PAGE_NOT_FOUND] ); } // if the page is requested from the BE module Viewpage or FrontendEditing, it shall be displayed even if hidden // a backend user shall be authenticated for this $requestedFromBE = ( preg_match("/.+\/typo3\/index.php\?route=.*(Viewpage)|(FrontendEditing).*/", $_SERVER['HTTP_REFERER']) || $request->getQueryParams()['frontend_editing'] === 'true' ) && $GLOBALS['BE_USER']; $pageUid = $otWebsiteRepository->matchUriToPage($website, $request->getUri(), $devMode, !$requestedFromBE); if (!$pageUid > 0) { return GeneralUtility::makeInstance(ErrorController::class)->pageNotFoundAction( $request, 'The requested page does not exist', ['code' => PageAccessFailureReasons::PAGE_NOT_FOUND] ); } $params['id'] = $pageUid; $request = $request->withQueryParams($params); return parent::process($request, $handler); } }