Skip to content

Commit

Permalink
[BUGFIX] Use TSConfig defaults for DataHandler
Browse files Browse the repository at this point in the history
Now the DataHandler observes the default values set in TsConfig. Example:

TCAdefaults.pages {
    # set page to visible
    hidden = 0
}

Resolves: #59383
Releases: master, 9.5
Change-Id: I51e5d07e4e9a9457135bb9af88868cd52af373d7
Reviewed-on: https://review.typo3.org/c/58453
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Benni Mack <benni@typo3.org>
Tested-by: Markus Klein <markus.klein@typo3.org>
Reviewed-by: Benni Mack <benni@typo3.org>
Reviewed-by: Markus Klein <markus.klein@typo3.org>
  • Loading branch information
brandung-gs authored and liayn committed Mar 7, 2019
1 parent f6e27a1 commit 49cfdfe
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 16 deletions.
Expand Up @@ -516,11 +516,6 @@ protected function processData(ServerRequestInterface $request): ?ResponseInterf

$tce->setControl($parsedBody['control'] ?? $queryParams['control'] ?? []);

// Set default values specific for the user
$TCAdefaultOverride = $beUser->getTSConfig()['TCAdefaults.'] ?? null;
if (is_array($TCAdefaultOverride)) {
$tce->setDefaultsFromUserTS($TCAdefaultOverride);
}
// Set internal vars
if (isset($beUser->uc['neverHideAtCopy']) && $beUser->uc['neverHideAtCopy']) {
$tce->neverHideAtCopy = 1;
Expand Down
Expand Up @@ -181,12 +181,6 @@ protected function createPages(array $newPagesData, int $pageUid, bool $afterExi
if (!empty($commandArray)) {
$pagesCreated = true;
$dataHandler = GeneralUtility::makeInstance(DataHandler::class);
// Set default TCA values specific for the user
$backendUser = $this->getBackendUser();
$tcaDefaultOverride = $backendUser->getTSConfig()['TCAdefaults.'] ?? null;
if (is_array($tcaDefaultOverride)) {
$dataHandler->setDefaultsFromUserTS($tcaDefaultOverride);
}
$dataHandler->start($commandArray, []);
$dataHandler->process_datamap();
BackendUtility::setUpdateSignal('updatePageTree');
Expand Down
Expand Up @@ -197,10 +197,6 @@ protected function init(ServerRequestInterface $request): void
if ($beUser->uc['neverHideAtCopy']) {
$this->tce->neverHideAtCopy = 1;
}
$TCAdefaultOverride = $beUser->getTSConfig()['TCAdefaults.'] ?? null;
if (is_array($TCAdefaultOverride)) {
$this->tce->setDefaultsFromUserTS($TCAdefaultOverride);
}
// Reverse order.
if ($this->flags['reverseOrder']) {
$this->tce->reverseOrder = 1;
Expand Down
9 changes: 8 additions & 1 deletion typo3/sysext/core/Classes/DataHandling/DataHandler.php
Expand Up @@ -645,6 +645,13 @@ public function start($data, $cmd, $altUserObject = null)
if ($this->BE_USER->uc['recursiveDelete']) {
$this->deleteTree = 1;
}

// Get default values from user TSConfig
$tcaDefaultOverride = $this->BE_USER->getTSConfig()['TCAdefaults.'] ?? null;
if (is_array($tcaDefaultOverride)) {
$this->setDefaultsFromUserTS($tcaDefaultOverride);
}

// Initializing default permissions for pages
$defaultPermissions = $GLOBALS['TYPO3_CONF_VARS']['BE']['defaultPermissions'];
if (isset($defaultPermissions['user'])) {
Expand Down Expand Up @@ -878,7 +885,7 @@ public function process_datamap()
$old_pid_value = '';
// Is it a new record? (Then Id is a string)
if (!MathUtility::canBeInterpretedAsInteger($id)) {
// Get a fieldArray with default values
// Get a fieldArray with tca default values
$fieldArray = $this->newFieldArray($table);
// A pid must be set for new records.
if (isset($incomingFieldArray['pid'])) {
Expand Down

0 comments on commit 49cfdfe

Please sign in to comment.