From fe67d9a536b618e4de2ea0531c8f1ace0fc4ca16 Mon Sep 17 00:00:00 2001 From: Oliver Bartsch <bo@cedev.de> Date: Fri, 13 Dec 2019 23:18:10 +0100 Subject: [PATCH] [BUGFIX] Remove exclude field for transOrigPointerFields transOrigPointerFields can not longer be excluded as this leads to inconsistent data stored in the database if a non-admin user created a localization by not having the permission to edit the transOrigPointerField. Resolves: #89550 Resolves: #89672 Releases: master Change-Id: Id718323783d37e6044781183052e3428ded9c89c Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/62632 Tested-by: TYPO3com <noreply@typo3.com> Tested-by: Georg Ringer <georg.ringer@gmail.com> Tested-by: Benni Mack <benni@typo3.org> Reviewed-by: Georg Ringer <georg.ringer@gmail.com> Reviewed-by: Benni Mack <benni@typo3.org> --- .../core/Classes/Migrations/TcaMigration.php | 24 ++++++ typo3/sysext/core/Configuration/TCA/pages.php | 1 - .../core/Configuration/TCA/sys_category.php | 1 - .../core/Configuration/TCA/sys_collection.php | 1 - .../Configuration/TCA/sys_file_collection.php | 1 - ...terFieldIsNotLongerAllowedToBeExcluded.rst | 21 +++++ .../TCA/tx_irretutorial_1ncsv_hotel.php | 1 - .../TCA/tx_irretutorial_1ncsv_offer.php | 1 - .../TCA/tx_irretutorial_1ncsv_price.php | 1 - .../TCA/tx_irretutorial_1nff_hotel.php | 1 - .../TCA/tx_irretutorial_1nff_offer.php | 1 - .../TCA/tx_irretutorial_1nff_price.php | 1 - .../TCA/tx_irretutorial_mnasym_hotel.php | 1 - ...tx_irretutorial_mnasym_hotel_offer_rel.php | 1 - .../TCA/tx_irretutorial_mnasym_offer.php | 1 - .../TCA/tx_irretutorial_mnasym_price.php | 1 - .../TCA/tx_irretutorial_mnattr_hotel.php | 1 - ...tx_irretutorial_mnattr_hotel_offer_rel.php | 1 - .../TCA/tx_irretutorial_mnattr_offer.php | 1 - .../TCA/tx_irretutorial_mnmmasym_hotel.php | 1 - .../TCA/tx_irretutorial_mnmmasym_offer.php | 1 - .../TCA/tx_irretutorial_mnmmasym_price.php | 1 - .../TCA/tx_irretutorial_mnsym_hotel.php | 1 - .../TCA/tx_irretutorial_mnsym_hotel_rel.php | 1 - .../Unit/Migrations/TcaMigrationTest.php | 82 +++++++++++++++++++ .../TCA/tx_blogexample_domain_model_blog.php | 1 - .../TCA/tx_blogexample_domain_model_info.php | 1 - .../tx_blogexample_domain_model_person.php | 1 - .../TCA/tx_blogexample_domain_model_post.php | 1 - .../TCA/tx_blogexample_domain_model_tag.php | 1 - .../frontend/Configuration/TCA/tt_content.php | 1 - 31 files changed, 127 insertions(+), 28 deletions(-) create mode 100644 typo3/sysext/core/Documentation/Changelog/master/Important-89672-TransOrigPointerFieldIsNotLongerAllowedToBeExcluded.rst diff --git a/typo3/sysext/core/Classes/Migrations/TcaMigration.php b/typo3/sysext/core/Classes/Migrations/TcaMigration.php index 96e7b9f1d41c..ff2e4e2c715b 100644 --- a/typo3/sysext/core/Classes/Migrations/TcaMigration.php +++ b/typo3/sysext/core/Classes/Migrations/TcaMigration.php @@ -53,6 +53,7 @@ class TcaMigration $tca = $this->removeSetToDefaultOnCopy($tca); $tca = $this->sanitizeControlSectionIntegrity($tca); $tca = $this->removeEnableMultiSelectFilterTextfieldConfiguration($tca); + $tca = $this->removeExcludeFieldForTransOrigPointerField($tca); return $tca; } @@ -272,4 +273,27 @@ class TcaMigration } return $tca; } + + /** + * Removes $TCA[$mytable][columns][_transOrigPointerField_][exclude] if defined + * + * @param array $tca + * + * @return array + */ + protected function removeExcludeFieldForTransOrigPointerField(array $tca): array + { + foreach ($tca as $table => &$configuration) { + if (isset($configuration['ctrl']['transOrigPointerField'], + $configuration['columns'][$configuration['ctrl']['transOrigPointerField']]['exclude']) + ) { + $this->messages[] = 'The \'' . $table . '\' TCA tables transOrigPointerField ' + . '\'' . $configuration['ctrl']['transOrigPointerField'] . '\' is defined ' + . ' as excluded field which is no longer needed and should therefore be removed. '; + unset($configuration['columns'][$configuration['ctrl']['transOrigPointerField']]['exclude']); + } + } + + return $tca; + } } diff --git a/typo3/sysext/core/Configuration/TCA/pages.php b/typo3/sysext/core/Configuration/TCA/pages.php index d4be891b22a1..512fbedb2a11 100644 --- a/typo3/sysext/core/Configuration/TCA/pages.php +++ b/typo3/sysext/core/Configuration/TCA/pages.php @@ -257,7 +257,6 @@ return [ ] ], 'l10n_parent' => [ - 'exclude' => true, 'displayCond' => 'FIELD:sys_language_uid:>:0', 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ diff --git a/typo3/sysext/core/Configuration/TCA/sys_category.php b/typo3/sysext/core/Configuration/TCA/sys_category.php index a3a1cec2b6e3..844e4c7ac3f1 100644 --- a/typo3/sysext/core/Configuration/TCA/sys_category.php +++ b/typo3/sysext/core/Configuration/TCA/sys_category.php @@ -73,7 +73,6 @@ return [ ], 'l10n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/core/Configuration/TCA/sys_collection.php b/typo3/sysext/core/Configuration/TCA/sys_collection.php index 55341c85a50c..1606b1430e24 100644 --- a/typo3/sysext/core/Configuration/TCA/sys_collection.php +++ b/typo3/sysext/core/Configuration/TCA/sys_collection.php @@ -55,7 +55,6 @@ return [ ], 'l10n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/core/Configuration/TCA/sys_file_collection.php b/typo3/sysext/core/Configuration/TCA/sys_file_collection.php index a2baca1105a8..2a58366ba33a 100644 --- a/typo3/sysext/core/Configuration/TCA/sys_file_collection.php +++ b/typo3/sysext/core/Configuration/TCA/sys_file_collection.php @@ -53,7 +53,6 @@ return [ ], 'l10n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/core/Documentation/Changelog/master/Important-89672-TransOrigPointerFieldIsNotLongerAllowedToBeExcluded.rst b/typo3/sysext/core/Documentation/Changelog/master/Important-89672-TransOrigPointerFieldIsNotLongerAllowedToBeExcluded.rst new file mode 100644 index 000000000000..92eed1182a20 --- /dev/null +++ b/typo3/sysext/core/Documentation/Changelog/master/Important-89672-TransOrigPointerFieldIsNotLongerAllowedToBeExcluded.rst @@ -0,0 +1,21 @@ +.. include:: ../../Includes.txt + +============================================================================== +Important: #89672 - transOrigPointerField is not longer allowed to be excluded +============================================================================== + +See :issue:`89672` + +Description +=========== + +The configured :php:`$GLOBALS['TCA'][$table]['ctrl']['transOrigPointerField']` +can now not longer be excluded as this leads to inconsistent data stored in the +database. This happens when a non-admin user creates a localization by not having +the permission to edit the `transOrigPointerField`. Usually this is the +`l10n_parent` or `l18n_parent` field. + +A migration wizard is available that removes the option from your TCA and adds a +deprecation message to the deprecation log where code adaption has to take place. + +.. index:: Backend, Database, TCA, ext:core diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1ncsv_hotel.php b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1ncsv_hotel.php index 1909fb0d069e..58609817896d 100644 --- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1ncsv_hotel.php +++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1ncsv_hotel.php @@ -40,7 +40,6 @@ return [ ], 'l18n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1ncsv_offer.php b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1ncsv_offer.php index 578668129f59..748743ec8022 100644 --- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1ncsv_offer.php +++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1ncsv_offer.php @@ -40,7 +40,6 @@ return [ ], 'l18n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1ncsv_price.php b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1ncsv_price.php index 3c33f197eb31..b50a0073d4d7 100644 --- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1ncsv_price.php +++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1ncsv_price.php @@ -38,7 +38,6 @@ return [ ], 'l18n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1nff_hotel.php b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1nff_hotel.php index aba431146f86..966647f9b060 100644 --- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1nff_hotel.php +++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1nff_hotel.php @@ -41,7 +41,6 @@ return [ ], 'l18n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1nff_offer.php b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1nff_offer.php index 325322d44844..9f9e91534bfb 100644 --- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1nff_offer.php +++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1nff_offer.php @@ -41,7 +41,6 @@ return [ ], 'l18n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1nff_price.php b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1nff_price.php index 4febefdb0bd4..14ea023fc66d 100644 --- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1nff_price.php +++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1nff_price.php @@ -41,7 +41,6 @@ return [ ], 'l18n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnasym_hotel.php b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnasym_hotel.php index 32b20006b237..ede6ac9f803a 100644 --- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnasym_hotel.php +++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnasym_hotel.php @@ -38,7 +38,6 @@ return [ ], 'l18n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnasym_hotel_offer_rel.php b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnasym_hotel_offer_rel.php index 5118e9e63f01..a6e69f75c624 100644 --- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnasym_hotel_offer_rel.php +++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnasym_hotel_offer_rel.php @@ -39,7 +39,6 @@ return [ ], 'l18n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnasym_offer.php b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnasym_offer.php index a133e6acc262..a3d1c7649d9f 100644 --- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnasym_offer.php +++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnasym_offer.php @@ -38,7 +38,6 @@ return [ ], 'l18n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnasym_price.php b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnasym_price.php index 19a2ad8b0f2f..ab377018d87e 100644 --- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnasym_price.php +++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnasym_price.php @@ -40,7 +40,6 @@ return [ ], 'l18n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnattr_hotel.php b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnattr_hotel.php index eeb33c994052..066e4e675bd7 100644 --- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnattr_hotel.php +++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnattr_hotel.php @@ -38,7 +38,6 @@ return [ ], 'l18n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnattr_hotel_offer_rel.php b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnattr_hotel_offer_rel.php index c55c4554c610..ae2b34a6fca8 100644 --- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnattr_hotel_offer_rel.php +++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnattr_hotel_offer_rel.php @@ -39,7 +39,6 @@ return [ ], 'l18n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnattr_offer.php b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnattr_offer.php index 5d10b59de8ea..a4766877d642 100644 --- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnattr_offer.php +++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnattr_offer.php @@ -38,7 +38,6 @@ return [ ], 'l18n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnmmasym_hotel.php b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnmmasym_hotel.php index e04944a72dfa..2538af184154 100644 --- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnmmasym_hotel.php +++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnmmasym_hotel.php @@ -38,7 +38,6 @@ return [ ], 'l18n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnmmasym_offer.php b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnmmasym_offer.php index 82f9c26f2c83..0b983a1b49d1 100644 --- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnmmasym_offer.php +++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnmmasym_offer.php @@ -38,7 +38,6 @@ return [ ], 'l18n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnmmasym_price.php b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnmmasym_price.php index 45747f776ee6..5d54b6bf656a 100644 --- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnmmasym_price.php +++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnmmasym_price.php @@ -38,7 +38,6 @@ return [ ], 'l18n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnsym_hotel.php b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnsym_hotel.php index adcead6c1d4e..687d1924cb1f 100644 --- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnsym_hotel.php +++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnsym_hotel.php @@ -38,7 +38,6 @@ return [ ], 'l18n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnsym_hotel_rel.php b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnsym_hotel_rel.php index 43e0a45d450c..0883d98e866b 100644 --- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnsym_hotel_rel.php +++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnsym_hotel_rel.php @@ -39,7 +39,6 @@ return [ ], 'l18n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/core/Tests/Unit/Migrations/TcaMigrationTest.php b/typo3/sysext/core/Tests/Unit/Migrations/TcaMigrationTest.php index b3da2a6aa3a0..4961de197ad7 100644 --- a/typo3/sysext/core/Tests/Unit/Migrations/TcaMigrationTest.php +++ b/typo3/sysext/core/Tests/Unit/Migrations/TcaMigrationTest.php @@ -479,4 +479,86 @@ class TcaMigrationTest extends UnitTestCase $subject = new TcaMigration(); self::assertEquals($expected, $subject->migrate($input)); } + + /** + * @test + */ + public function removeExcludeFieldForTransOrigPointerFieldIsRemoved(): void + { + $input = [ + 'aTable' => [ + 'ctrl' => [ + 'transOrigPointerField' => 'l10n_parent' + ], + 'columns' => [ + 'l10n_parent' => [ + 'exclude' => true, + 'config' => [ + 'type' => 'select' + ] + ] + ] + ], + 'bTable' => [ + 'ctrl' => [ + 'transOrigPointerField' => 'l10n_parent' + ], + 'columns' => [ + 'l10n_parent' => [ + 'config' => [ + 'type' => 'select' + ] + ] + ] + ], + 'cTable' => [ + 'columns' => [ + 'l10n_parent' => [ + 'exclude' => true, + 'config' => [ + 'type' => 'select' + ] + ] + ] + ] + ]; + $expected = [ + 'aTable' => [ + 'ctrl' => [ + 'transOrigPointerField' => 'l10n_parent' + ], + 'columns' => [ + 'l10n_parent' => [ + 'config' => [ + 'type' => 'select' + ] + ] + ] + ], + 'bTable' => [ + 'ctrl' => [ + 'transOrigPointerField' => 'l10n_parent' + ], + 'columns' => [ + 'l10n_parent' => [ + 'config' => [ + 'type' => 'select' + ] + ] + ] + ], + 'cTable' => [ + 'columns' => [ + 'l10n_parent' => [ + 'exclude' => true, + 'config' => [ + 'type' => 'select' + ] + ] + ] + ] + ]; + $subject = new TcaMigration(); + self::assertEquals($expected, $subject->migrate($input)); + } } diff --git a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_blog.php b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_blog.php index 01e3bc7e343e..8576a32fdfd8 100644 --- a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_blog.php +++ b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_blog.php @@ -40,7 +40,6 @@ return [ ], 'l18n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_info.php b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_info.php index 47f10d0feb25..73c88434eecb 100644 --- a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_info.php +++ b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_info.php @@ -39,7 +39,6 @@ return [ ] ], 'l18n_parent' => [ - 'exclude' => true, 'displayCond' => 'FIELD:sys_language_uid:>:0', 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ diff --git a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_person.php b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_person.php index f265e939105d..f9273d6d9159 100644 --- a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_person.php +++ b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_person.php @@ -41,7 +41,6 @@ return [ ], 'l10n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_post.php b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_post.php index fb050f2ea350..aeb668041bec 100644 --- a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_post.php +++ b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_post.php @@ -47,7 +47,6 @@ return [ ], 'l18n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_tag.php b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_tag.php index 6c66fd78544c..e24a1c0a54df 100644 --- a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_tag.php +++ b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_tag.php @@ -39,7 +39,6 @@ return [ ], 'l18n_parent' => [ 'displayCond' => 'FIELD:sys_language_uid:>:0', - 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ 'type' => 'select', diff --git a/typo3/sysext/frontend/Configuration/TCA/tt_content.php b/typo3/sysext/frontend/Configuration/TCA/tt_content.php index e3436db4e816..c5ee3c109c9f 100644 --- a/typo3/sysext/frontend/Configuration/TCA/tt_content.php +++ b/typo3/sysext/frontend/Configuration/TCA/tt_content.php @@ -307,7 +307,6 @@ return [ ] ], 'l18n_parent' => [ - 'exclude' => true, 'displayCond' => 'FIELD:sys_language_uid:>:0', 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', 'config' => [ -- GitLab