Skip to content
Snippets Groups Projects
Commit 14c0a18c authored by Jonas Schwabe's avatar Jonas Schwabe Committed by Daniel Goerz
Browse files

[BUGFIX] Check if language is accessible before uri generation

Sites with error handling were not rendering the correct page for
disabled languages because an inaccessible language was used
internally.

Resolves: #87865
Releases: master, 9.5
Change-Id: I8f6219d742c74359e0009085711f5452dc139f40
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/60212


Tested-by: default avatarTYPO3com <noreply@typo3.com>
Tested-by: default avatarJonas Schwabe <jonas.schwabe@eyeworkers.de>
Tested-by: default avatarBenni Mack <benni@typo3.org>
Tested-by: default avatarDaniel Goerz <daniel.goerz@posteo.de>
Reviewed-by: default avatarJonas Schwabe <jonas.schwabe@eyeworkers.de>
Reviewed-by: default avatarBenni Mack <benni@typo3.org>
Reviewed-by: default avatarDaniel Goerz <daniel.goerz@posteo.de>
parent 0480e384
Branches
Tags
No related merge requests found
......@@ -23,6 +23,7 @@ use TYPO3\CMS\Core\Http\HtmlResponse;
use TYPO3\CMS\Core\LinkHandling\LinkService;
use TYPO3\CMS\Core\Routing\InvalidRouteArgumentsException;
use TYPO3\CMS\Core\Site\Entity\Site;
use TYPO3\CMS\Core\Site\Entity\SiteLanguage;
use TYPO3\CMS\Core\Site\SiteFinder;
use TYPO3\CMS\Core\Utility\GeneralUtility;
......@@ -107,10 +108,14 @@ class PageContentErrorHandler implements PageErrorHandlerInterface
if (!$site instanceof Site) {
$site = GeneralUtility::makeInstance(SiteFinder::class)->getSiteByPageId((int)$urlParams['pageuid']);
}
$language = $request->getAttribute('language', null);
if (!$language instanceof SiteLanguage || !$language->isEnabled()) {
$language = $site->getDefaultLanguage();
}
// Build Url
return (string)$site->getRouter()->generateUri(
(int)$urlParams['pageuid'],
['_language' => $request->getAttribute('language', null)]
['_language' => $language]
);
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment