From 7e9e0a76b90798bd52fa07ce8934db8acf65fb59 Mon Sep 17 00:00:00 2001 From: Georg Ringer Date: Mon, 8 Jan 2024 07:30:14 +0100 Subject: [PATCH 1/3] [BUGFIX] Check for CLI usage If using solrfal and indexing via scheduler call, the `$GLOBALS['TYPO3_REQUEST`]` is empty which leads to exception ``` Leuchtfeuer\SecureDownloads\Factory\SecureLinkFactory::getRequest(): Return value must be of type TYPO3\CMS\Core\Http\ServerRequest, null returned ``` --- Classes/Factory/SecureLinkFactory.php | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Classes/Factory/SecureLinkFactory.php b/Classes/Factory/SecureLinkFactory.php index 5311b2a..d212bd7 100644 --- a/Classes/Factory/SecureLinkFactory.php +++ b/Classes/Factory/SecureLinkFactory.php @@ -67,12 +67,15 @@ protected function initializeToken(): void { $this->token->setExp($this->calculateLinkLifetime()); $request = $this->getRequest(); - if (ApplicationType::fromRequest($request)->isFrontend()) { - $pageArguments = $request->getAttribute('routing'); - $pageId = $pageArguments->getPageId(); - } elseif (ApplicationType::fromRequest($request)->isBackend()) { - $site = $request->getAttribute('site'); - $pageId = $site->getRootPageId(); + if (!Environment::isCli()) { + $request = $this->getRequest(); + if (ApplicationType::fromRequest($request)->isFrontend()) { + $pageArguments = $request->getAttribute('routing'); + $pageId = $pageArguments->getPageId(); + } elseif (ApplicationType::fromRequest($request)->isBackend()) { + $site = $request->getAttribute('site'); + $pageId = $site->getRootPageId(); + } } $this->token->setPage($pageId ?? 0); From 658d2ab3ced190fe7bb156296144d7361b55f972 Mon Sep 17 00:00:00 2001 From: Georg Ringer Date: Mon, 8 Jan 2024 08:19:28 +0100 Subject: [PATCH 2/3] Update SecureLinkFactory.php --- Classes/Factory/SecureLinkFactory.php | 1 - 1 file changed, 1 deletion(-) diff --git a/Classes/Factory/SecureLinkFactory.php b/Classes/Factory/SecureLinkFactory.php index d212bd7..d9ff31a 100644 --- a/Classes/Factory/SecureLinkFactory.php +++ b/Classes/Factory/SecureLinkFactory.php @@ -66,7 +66,6 @@ public function __construct(EventDispatcher $eventDispatcher, ExtensionConfigura protected function initializeToken(): void { $this->token->setExp($this->calculateLinkLifetime()); - $request = $this->getRequest(); if (!Environment::isCli()) { $request = $this->getRequest(); if (ApplicationType::fromRequest($request)->isFrontend()) { From 5f3009bac53ab357974c51585e83f247590c3de4 Mon Sep 17 00:00:00 2001 From: Georg Ringer Date: Mon, 8 Jan 2024 08:27:12 +0100 Subject: [PATCH 3/3] Update SecureLinkFactory.php --- Classes/Factory/SecureLinkFactory.php | 1 + 1 file changed, 1 insertion(+) diff --git a/Classes/Factory/SecureLinkFactory.php b/Classes/Factory/SecureLinkFactory.php index d9ff31a..81e9db0 100644 --- a/Classes/Factory/SecureLinkFactory.php +++ b/Classes/Factory/SecureLinkFactory.php @@ -21,6 +21,7 @@ use Leuchtfeuer\SecureDownloads\Registry\TokenRegistry; use TYPO3\CMS\Core\Context\Context; use TYPO3\CMS\Core\Context\UserAspect; +use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\EventDispatcher\EventDispatcher; use TYPO3\CMS\Core\Http\ApplicationType; use TYPO3\CMS\Core\Http\ServerRequest;