diff --git a/Classes/DirectMailUtility.php b/Classes/DirectMailUtility.php index c27ce96aa..a9fa4769c 100644 --- a/Classes/DirectMailUtility.php +++ b/Classes/DirectMailUtility.php @@ -27,6 +27,8 @@ use TYPO3\CMS\Core\Messaging\FlashMessageRendererResolver; use TYPO3\CMS\Core\Resource\FileReference; use TYPO3\CMS\Core\Resource\FileRepository; +use TYPO3\CMS\Core\Routing\PageRouter; +use TYPO3\CMS\Core\Site\SiteFinder; use TYPO3\CMS\Core\Type\ContextualFeedbackSeverity; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\MathUtility; @@ -94,14 +96,14 @@ public static function getTypolinkURL( bool $forceAbsoluteUrl = true, bool $linkAccessRestrictedPages = true ): string { - $typolinkPageUrl = 't3://page?uid='; - $cObj = GeneralUtility::makeInstance(ContentObjectRenderer::class); - - return $cObj->typolink_URL([ - 'parameter' => $typolinkPageUrl . $parameter, - 'forceAbsoluteUrl' => $forceAbsoluteUrl, - 'linkAccessRestrictedPages' => $linkAccessRestrictedPages, - ]); + $siteFinder = GeneralUtility::makeInstance(SiteFinder::class); + $site = $siteFinder->getSiteByPageId((int)$parameter); + $pageRouter = GeneralUtility::makeInstance(PageRouter::class, $site); + $parameters = []; + if (strpos($parameter, '&') !== false) { + parse_str(substr($parameter, strpos($parameter, '&') + 1), $parameters); + } + return (string)$pageRouter->generateUri((int)$parameter, $parameters); } /** diff --git a/Classes/Dmailer.php b/Classes/Dmailer.php index 07bd932de..62f7378bd 100644 --- a/Classes/Dmailer.php +++ b/Classes/Dmailer.php @@ -1335,13 +1335,13 @@ protected function get_tag_attributes(string $tag, bool $removeQuotes = true): a if (substr($tag, 0, 1) === '"' && $removeQuotes) { // Quotes around the value $reg = explode('"', substr($tag, 1, $tagLen), 2); - $tag = ltrim($reg[1]); - $value = $reg[0]; + $tag = ltrim($reg[1] ?? ''); + $value = $reg[0] ?? ''; } else { // No quotes around value preg_match('/^([^[:space:]>]*)(.*)/', $tag, $reg); - $value = trim($reg[1]); - $tag = ltrim($reg[2]); + $value = trim($reg[1] ?? ''); + $tag = ltrim($reg[2] ?? ''); if (substr($tag, 0, 1) === '>') { $tag = ''; } diff --git a/Classes/Scheduler/MailFromDraft.php b/Classes/Scheduler/MailFromDraft.php index 03692f7da..d866ac5e7 100644 --- a/Classes/Scheduler/MailFromDraft.php +++ b/Classes/Scheduler/MailFromDraft.php @@ -96,6 +96,7 @@ public function execute(): bool // For example the current date could get appended to the subject. $hookParams['draftRecord'] = &$draftRecord; $hookParams['defaultParams'] = &$defaultParams; + $hookParams['dmailUid'] = $this->dmailUid; $this->callHooks('postInsertClone', $hookParams); // fetch the cloned record diff --git a/Classes/Utility/AuthCodeUtility.php b/Classes/Utility/AuthCodeUtility.php index d96489e89..e5c9c58f4 100644 --- a/Classes/Utility/AuthCodeUtility.php +++ b/Classes/Utility/AuthCodeUtility.php @@ -16,34 +16,20 @@ class AuthCodeUtility * @param string $authcodeFieldList * @return bool */ - public static function validateAuthCode(string $submittedAuthCode, array $recipientRecord, string $authcodeFieldList = 'uid'): bool + public static function validateAuthCode( + string $submittedAuthCode, + array $recipientRecord, + string $authcodeFieldList = 'uid'): bool { if (!empty($submittedAuthCode)) { $hmac = self::getHmac($recipientRecord, $authcodeFieldList); if ($submittedAuthCode === $hmac) { return true; } - /** - * @TODO remove in v12 - * for old e-mails - */ - $authCodeToMatch = self::getAuthCode($recipientRecord, $authcodeFieldList); - if ($submittedAuthCode === $authCodeToMatch) { - return true; - } } return false; } - /** - * @TODO remove in v12 - * https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/11.3/Deprecation-94309-DeprecatedGeneralUtilitystdAuthCode.html - */ - public static function getAuthCode(array $recipientRecord, string $authcodeFieldList): string - { - return GeneralUtility::stdAuthCode($recipientRecord, $authcodeFieldList); - } - public static function getHmac(array $recipientRecord, string $authcodeFieldList): string { $recCopy_temp = []; diff --git a/Classes/Utility/FetchUtility.php b/Classes/Utility/FetchUtility.php index 52ff29d0e..9a1b9d20b 100644 --- a/Classes/Utility/FetchUtility.php +++ b/Classes/Utility/FetchUtility.php @@ -38,7 +38,7 @@ public function getStreamContext() public function getResponse(string $url): Response { - $context = null; + $context = []; $applicationContext = Environment::getContext(); if ($applicationContext->isDevelopment()) { $context = ['verify' => Typo3ConfVarsUtility::getDMConfigSSLVerify()]; diff --git a/Configuration/Backend/Modules.php b/Configuration/Backend/Modules.php index 88638688f..9f75590a3 100644 --- a/Configuration/Backend/Modules.php +++ b/Configuration/Backend/Modules.php @@ -17,7 +17,7 @@ 'directmail_module_directmail' => [ 'parent' => 'directmail', 'position' => ['top'], - 'access' => 'group,user', + 'access' => 'user', 'workspaces' => 'live', 'path' => '/module/directmail/directmail', 'iconIdentifier' => 'directmail-module-directmail', @@ -31,7 +31,7 @@ 'directmail_module_recipientlist' => [ 'parent' => 'directmail', 'position' => ['after' => 'directmail_module_directmail'], - 'access' => 'group,user', + 'access' => 'user', 'workspaces' => 'live', 'path' => '/module/directmail/recipientlist', 'iconIdentifier' => 'directmail-module-recipient-list', @@ -45,7 +45,7 @@ 'directmail_module_importer' => [ 'parent' => 'directmail', 'position' => ['after' => 'directmail_module_recipientlist'], - 'access' => 'group,user', + 'access' => 'user', 'workspaces' => 'live', 'path' => '/module/directmail/importer', 'iconIdentifier' => 'directmail-module-importer', @@ -59,7 +59,7 @@ 'directmail_module_statistics' => [ 'parent' => 'directmail', 'position' => ['after' => 'directmail_module_importer'], - 'access' => 'group,user', + 'access' => 'user', 'workspaces' => 'live', 'path' => '/module/directmail/statistics', 'iconIdentifier' => 'directmail-module-statistics', @@ -73,7 +73,7 @@ 'directmail_module_mailerengine' => [ 'parent' => 'directmail', 'position' => ['after' => 'directmail_module_statistics'], - 'access' => 'group,user', + 'access' => 'user', 'workspaces' => 'live', 'path' => '/module/directmail/mailerengine', 'iconIdentifier' => 'directmail-module-mailer-engine', @@ -87,7 +87,7 @@ 'directmail_module_configuration' => [ 'parent' => 'directmail', 'position' => ['bottom '], - 'access' => 'group,user', + 'access' => 'user', 'workspaces' => 'live', 'path' => '/module/directmail/configuration', 'iconIdentifier' => 'directmail-module-configuration',