From 5fbab6b61bae75c0c309d801dea80ffeccff9d0f Mon Sep 17 00:00:00 2001 From: Tobias Kretschmann Date: Wed, 28 Feb 2018 12:11:36 +0100 Subject: [PATCH] [TASK] Log warning if a custom BE login image couldn't be resolved Log a warning message if the configured TYPO3 backend login - logo or - background image can't get resolved. Change-Id: I782a9b08650d9b2f9cfb3cefb9c4ba18577d5a7d Resolves: #84050 Releases: master Reviewed-on: https://review.typo3.org/55911 Reviewed-by: Wolfgang Klinger Tested-by: Wolfgang Klinger Reviewed-by: Tobi Kretschmann Tested-by: Tobi Kretschmann Tested-by: TYPO3com Reviewed-by: Joerg Boesche Tested-by: Joerg Boesche Reviewed-by: Frank Naegler Tested-by: Frank Naegler Reviewed-by: Christian Kuhn Tested-by: Christian Kuhn --- .../Classes/Controller/LoginController.php | 36 ++++++++++++------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/typo3/sysext/backend/Classes/Controller/LoginController.php b/typo3/sysext/backend/Classes/Controller/LoginController.php index f6ae7ae6efa8..0da32b824814 100644 --- a/typo3/sysext/backend/Classes/Controller/LoginController.php +++ b/typo3/sysext/backend/Classes/Controller/LoginController.php @@ -16,6 +16,8 @@ use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; +use Psr\Log\LoggerAwareInterface; +use Psr\Log\LoggerAwareTrait; use TYPO3\CMS\Backend\Exception; use TYPO3\CMS\Backend\LoginProvider\LoginProviderInterface; use TYPO3\CMS\Backend\Routing\UriBuilder; @@ -36,8 +38,10 @@ /** * Script Class for rendering the login form */ -class LoginController +class LoginController implements LoggerAwareInterface { + use LoggerAwareTrait; + /** * The URL to redirect to after login. * @@ -169,6 +173,12 @@ public function main() // Background Image if (!empty($extConf['loginBackgroundImage'])) { $backgroundImage = $this->getUriForFileName($extConf['loginBackgroundImage']); + if ($backgroundImage === '') { + $this->logger->warning( + 'The configured TYPO3 backend login background image "' . htmlspecialchars($extConf['loginBackgroundImage']) . + '" can\'t be resolved. Please check if the file exists and the extension is activated.' + ); + } $this->getDocumentTemplate()->inDocStylesArray[] = ' .typo3-login-carousel-control.right, .typo3-login-carousel-control.left, @@ -201,6 +211,12 @@ public function main() // Logo if (!empty($extConf['loginLogo'])) { + if ($this->getUriForFileName($extConf['loginLogo']) === '') { + $this->logger->warning( + 'The configured TYPO3 backend login logo "' . htmlspecialchars($extConf['loginLogo']) . + '" can\'t be resolved. Please check if the file exists and the extension is activated.' + ); + } $logo = $extConf['loginLogo']; } else { // Use TYPO3 logo depending on highlight color @@ -402,20 +418,16 @@ protected function getSystemNews() */ private function getUriForFileName($filename) { - if (strpos($filename, '://')) { + // Check if it's already a URL + if (preg_match('/^(https?:)?\/\//', $filename)) { return $filename; } - $urlPrefix = ''; - if (strpos($filename, 'EXT:') === 0) { - $absoluteFilename = GeneralUtility::getFileAbsFileName($filename); - $filename = ''; - if ($absoluteFilename !== '') { - $filename = PathUtility::getAbsoluteWebPath($absoluteFilename); - } - } elseif (strpos($filename, '/') !== 0) { - $urlPrefix = GeneralUtility::getIndpEnv('TYPO3_SITE_PATH'); + $absoluteFilename = GeneralUtility::getFileAbsFileName(ltrim($filename, '/')); + $filename = ''; + if ($absoluteFilename !== '' && @is_file($absoluteFilename)) { + $filename = PathUtility::getAbsoluteWebPath($absoluteFilename); } - return $urlPrefix . $filename; + return $filename; } /**