Bug #90013
openConversion of Extbase to Doctrine query disregards enable field settings for join queries (MM relations)
0%
Description
In order to apply custom enable field settings for nested entities, an overloaded QueryFactory can be used (as outlined in https://stackoverflow.com/a/39994951).
In that case, however, the settings made by Typo3QuerySettings::setIgnoreEnableFields()
/ ::setEnableFieldsToBeIgnored()
don't get applied when the query is converted into a Doctrine QueryBuilder
via Typo3DbQueryParser::convertQueryToDoctrineQueryBuilder()
respectively ::initializeQueryBuilder()
. When the source
argument for the latter is a JOIN (which is the case for MM relations), the QueryBuilder
is constituted with the unmodified DefaultRestrictionContainer
, applying all the default restrictions regardless of the query's Typo3QuerySettings
. This basically makes it impossible to query for nested entities that are e.g. hidden without removing the "disabled" enable field in TCA altogether.
My temporary workaround: I'm using a custom implementation of the Typo3DbQueryParser
which amends the original convertQueryToDoctrineQueryBuilder()
by selectively applying the enable field query settings to the Doctrine QueryBuilder
restriction container (see attachment).
Files
Updated by Markus Klein over 3 years ago
- Related to Bug #91324: Visibility restrictions are added twice for Extbase ObjectStorage relations added