Skip to content

Commit d4b2808

Browse files
authored
Merge pull request #854 from rubsilv/TYPO3_v14
[TASK] Upgrade to TYPO3 v14
2 parents b6e86f4 + a904cfc commit d4b2808

19 files changed

Lines changed: 72 additions & 65 deletions

Classes/Controller/AbstractController.php

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@
1414
use HDNET\Calendarize\Service\PluginConfigurationService;
1515
use HDNET\Calendarize\Utility\DateTimeUtility;
1616
use Psr\Http\Message\ResponseInterface;
17+
use TYPO3\CMS\Core\Crypto\HashService;
1718
use TYPO3\CMS\Core\Http\PropagateResponseException;
1819
use TYPO3\CMS\Core\Type\ContextualFeedbackSeverity;
1920
use TYPO3\CMS\Core\Utility\GeneralUtility;
2021
use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface;
2122
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
2223
use TYPO3\CMS\Extbase\Mvc\Controller\Arguments;
2324
use TYPO3\CMS\Extbase\Mvc\RequestInterface;
24-
use TYPO3\CMS\Extbase\Security\Cryptography\HashService;
2525
use TYPO3\CMS\Frontend\Controller\ErrorController;
2626
use TYPO3\CMS\Frontend\Page\PageAccessFailureReasons;
2727

@@ -125,7 +125,7 @@ protected function callActionMethod(RequestInterface $request): ResponseInterfac
125125
if (isset($this->feedFormats[$request->getFormat()])) {
126126
if ($request->hasArgument('hmac')) {
127127
$hmac = $request->getArgument('hmac');
128-
if ($this->validatePluginHmac($hmac)) {
128+
if ($this->validatePluginHmac($hmac, $this->request->getControllerActionName())) {
129129
$this->setHeadersAndExit(
130130
$response,
131131
$this->feedFormats[$request->getFormat()],
@@ -194,7 +194,7 @@ protected function eventExtendedAssignMultiple(array $variables, string $classNa
194194
{
195195
// use this variable in your extension to add more custom variables
196196
$variables['extended'] = [];
197-
$variables['extended']['pluginHmac'] = $this->calculatePluginHmac();
197+
$variables['extended']['pluginHmac'] = $this->calculatePluginHmac($this->request->getControllerActionName());
198198
$variables['settings'] = $this->settings;
199199
$variables['contentObject'] = $this->request->getAttribute('currentContentObject')->data;
200200

@@ -223,7 +223,7 @@ protected function eventExtendedRedirect(
223223
'delay' => 0,
224224
'statusCode' => 301,
225225
];
226-
$variables['extended']['pluginHmac'] = $this->calculatePluginHmac();
226+
$variables['extended']['pluginHmac'] = $this->calculatePluginHmac($this->request->getControllerActionName());
227227
$variables['settings'] = $this->settings;
228228
}
229229

@@ -260,26 +260,36 @@ protected function getStringForPluginHmac(): string
260260
*
261261
* @see HashService::generateHmac
262262
*/
263-
protected function calculatePluginHmac(): string
263+
protected function calculatePluginHmac(string $context = 'default'): string
264264
{
265+
/* Generate a secret that is unique per context */
266+
$contentObject = $this->request->getAttribute('currentContentObject');
267+
$uid = $contentObject ? (string)$contentObject->data['uid'] : '0';
268+
$additionalSecret = $uid . $context;
269+
265270
$string = $this->getStringForPluginHmac();
266271

267272
$hashService = GeneralUtility::makeInstance(HashService::class);
268273

269-
return $hashService->generateHmac($string);
274+
return $hashService->hmac($string, $additionalSecret);
270275
}
271276

272277
/**
273278
* @see HashService::validateHmac
274279
*/
275-
protected function validatePluginHmac(string $hmac): bool
280+
protected function validatePluginHmac(string $hmac, string $context = 'default'): bool
276281
{
282+
/* Generate a secret that is unique per context */
283+
$contentObject = $this->request->getAttribute('currentContentObject');
284+
$uid = $contentObject ? (string)$contentObject->data['uid'] : '0';
285+
$additionalSecret = $uid . $context;
286+
277287
$string = $this->getStringForPluginHmac();
278288

279289
/** @var HashService $hashService */
280290
$hashService = GeneralUtility::makeInstance(HashService::class);
281291

282-
return $hashService->validateHmac($string, $hmac);
292+
return $hashService->validateHmac($string, $additionalSecret, $hmac);
283293
}
284294

285295
/**

Classes/Controller/BackendController.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use HDNET\Calendarize\Domain\Model\Request\OptionRequest;
88
use HDNET\Calendarize\Register;
99
use Psr\Http\Message\ResponseInterface;
10-
use TYPO3\CMS\Backend\Attribute\Controller;
10+
use TYPO3\CMS\Backend\Attribute\AsController;
1111
use TYPO3\CMS\Backend\Template\ModuleTemplateFactory;
1212
use TYPO3\CMS\Backend\Utility\BackendUtility;
1313
use TYPO3\CMS\Core\Authentication\BackendUserAuthentication;
@@ -21,7 +21,7 @@
2121
/**
2222
* BackendController.
2323
*/
24-
#[Controller]
24+
#[AsController]
2525
class BackendController extends AbstractController
2626
{
2727
protected LanguageService $languageService;

Classes/Controller/BookingController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
use HDNET\Calendarize\Domain\Model\Request\AbstractBookingRequest;
99
use HDNET\Calendarize\Validation\Validator\BookingRequestValidator;
1010
use Psr\Http\Message\ResponseInterface;
11-
use TYPO3\CMS\Extbase\Annotation as Extbase;
11+
use TYPO3\CMS\Extbase\Attribute as Extbase;
1212

1313
/**
1414
* BookingController.

Classes/Controller/CalendarController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
use TYPO3\CMS\Core\Pagination\SlidingWindowPagination;
1919
use TYPO3\CMS\Core\Utility\GeneralUtility;
2020
use TYPO3\CMS\Core\Utility\MathUtility;
21-
use TYPO3\CMS\Extbase\Annotation as Extbase;
21+
use TYPO3\CMS\Extbase\Attribute as Extbase;
2222
use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface;
2323
use TYPO3\CMS\Extbase\Http\ForwardResponse;
2424
use TYPO3\CMS\Extbase\Pagination\QueryResultPaginator;

Classes/Domain/Model/Configuration.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace HDNET\Calendarize\Domain\Model;
66

7-
use TYPO3\CMS\Extbase\Annotation as Extbase;
7+
use TYPO3\CMS\Extbase\Attribute as Extbase;
88
use TYPO3\CMS\Extbase\Persistence\ObjectStorage;
99

1010
/**

Classes/Domain/Model/Event.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
use HDNET\Calendarize\Features\KeSearchIndexInterface;
99
use HDNET\Calendarize\Features\SpeakingUrlInterface;
1010
use TYPO3\CMS\Backend\Utility\BackendUtility;
11-
use TYPO3\CMS\Extbase\Annotation as Extbase;
11+
use TYPO3\CMS\Extbase\Attribute as Extbase;
1212
use TYPO3\CMS\Extbase\Domain\Model\Category;
1313
use TYPO3\CMS\Extbase\Domain\Model\FileReference;
1414
use TYPO3\CMS\Extbase\Persistence\ObjectStorage;

Classes/Domain/Model/Request/DefaultBookingRequest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace HDNET\Calendarize\Domain\Model\Request;
66

7-
use TYPO3\CMS\Extbase\Annotation as Extbase;
7+
use TYPO3\CMS\Extbase\Attribute as Extbase;
88
use TYPO3\CMS\Extbase\Validation\Validator\EmailAddressValidator;
99

1010
/**

Classes/EventListener/PreviewRenderingEventListener.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,9 @@
99
use HDNET\Calendarize\Utility\TranslateUtility;
1010
use TYPO3\CMS\Backend\Utility\BackendUtility;
1111
use TYPO3\CMS\Backend\View\Event\PageContentPreviewRenderingEvent;
12-
use TYPO3\CMS\Core\Imaging\Icon;
12+
use TYPO3\CMS\Core\Domain\FlexFormFieldValues;
1313
use TYPO3\CMS\Core\Imaging\IconFactory;
1414
use TYPO3\CMS\Core\Imaging\IconSize;
15-
use TYPO3\CMS\Core\Information\Typo3Version;
16-
use TYPO3\CMS\Core\Utility\GeneralUtility;
1715

1816
/**
1917
* Provides backend preview for calendarize plugins.
@@ -33,17 +31,19 @@ public function __invoke(PageContentPreviewRenderingEvent $event): void
3331
return;
3432
}
3533

36-
$this->flexFormService->load($record['pi_flexform'] ?? '');
37-
if (!$this->flexFormService->isValid()) {
34+
if (!isset($record['pi_flexform'])) {
3835
return;
3936
}
4037

41-
$iconSize = GeneralUtility::makeInstance(Typo3Version::class)->getMajorVersion() <= 12 ? Icon::SIZE_SMALL : IconSize::SMALL;
38+
/** @var FlexFormFieldValues $flexFormFieldValues */
39+
$flexFormFieldValues = $record['pi_flexform'];
4240

43-
$extensionIconUsage = $this->iconFactory->getIcon('ext-calendarize-wizard-icon', $iconSize)->render();
41+
$flexFormFieldValues->toArray();
42+
43+
$extensionIconUsage = $this->iconFactory->getIcon('ext-calendarize-wizard-icon', IconSize::SMALL)->render();
4444
$this->layoutService->setTitle($extensionIconUsage . ' Calendarize');
4545

46-
$listType = explode('_', $record['list_type'], 2)[1] ?? '';
46+
$listType = explode('_', $record['CType'], 2)[1] ?? '';
4747
$this->layoutService->addRow(TranslateUtility::get('mode'), TranslateUtility::get('mode.' . $listType));
4848

4949
$pluginConfiguration = (int)$this->flexFormService->get('settings.pluginConfiguration', 'main');

Classes/Service/TcaService.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public function eventTitle(array &$params, ?object $_): void
5353
// base title
5454
$table = $params['table'];
5555
unset($GLOBALS['TCA'][$table]['ctrl']['label_userFunc']);
56-
$params['title'] = BackendUtility::getRecordTitle($table, $params['row']);
56+
$params['title'] = $params['row']['title'];
5757
$GLOBALS['TCA'][$table]['ctrl']['label_userFunc'] = self::class . '->eventTitle';
5858

5959
// base record

Classes/Service/TimeTable/Secondary/ManipulationTimeTable.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@
66
use HDNET\Calendarize\Service\TimeTable\AbstractTimeTable;
77
use HDNET\Calendarize\Service\TimeTable\TimeTableInterface;
88
use HDNET\Calendarize\Utility\ConfigurationUtility;
9-
use TYPO3\CMS\Core\Service\FlexFormService;
9+
use TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools;
1010
use TYPO3\CMS\Core\Utility\MathUtility;
1111

1212
class ManipulationTimeTable extends AbstractTimeTable implements TimeTableInterface
1313
{
14-
public function __construct(protected FlexFormService $flexFormService) {}
14+
public function __construct(protected FlexFormTools $flexFormTools) {}
1515

1616
private function loadFlexForm($flexFormString): array
1717
{
18-
return $this->flexFormService
18+
return $this->flexFormTools
1919
->convertFlexFormContentToArray($flexFormString);
2020
}
2121

@@ -46,7 +46,7 @@ public function getFlexForm(): string
4646

4747
public function handleConfiguration(array &$times, Configuration $configuration): void
4848
{
49-
$settings = $this->flexFormService->convertFlexFormContentToArray($configuration->getFlexForm());
49+
$settings = $this->flexFormTools->convertFlexFormContentToArray($configuration->getFlexForm());
5050
if (MathUtility::canBeInterpretedAsInteger($settings['settings']['fixedStartTime'] ?? null)) {
5151
foreach ($times as $key => $time) {
5252
$times[$key]['start_time'] = (int)$settings['settings']['fixedStartTime'];

0 commit comments

Comments
 (0)