From 8ea2cea392e99989214cea21db557f4aeb060713 Mon Sep 17 00:00:00 2001 From: Simon Praetorius Date: Thu, 7 Sep 2017 22:30:27 +0200 Subject: [PATCH] [BUGFIX] Remove restrictions from SQL in InstallTool Since the context of the install tool can now be either standalone or backend, SQL queries need to be adjusted so that Doctrine restrictions don't change their results. Resolves: #82360 Releases: master Change-Id: Ic1934f06f73d6212d108658ad655228f2e983cc3 Reviewed-on: https://review.typo3.org/53976 Tested-by: TYPO3com Reviewed-by: Matthias Vogel Tested-by: Matthias Vogel Reviewed-by: Jan Helke Tested-by: Jan Helke --- .../Controller/Action/Ajax/SystemMaintainerWrite.php | 2 ++ .../sysext/install/Classes/Updates/StartModuleUpdate.php | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/typo3/sysext/install/Classes/Controller/Action/Ajax/SystemMaintainerWrite.php b/typo3/sysext/install/Classes/Controller/Action/Ajax/SystemMaintainerWrite.php index ecded37708ec..ebfe02013c99 100644 --- a/typo3/sysext/install/Classes/Controller/Action/Ajax/SystemMaintainerWrite.php +++ b/typo3/sysext/install/Classes/Controller/Action/Ajax/SystemMaintainerWrite.php @@ -45,6 +45,8 @@ protected function executeAction(): array } $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('be_users'); + $queryBuilder->getRestrictions()->removeAll(); + $validatedUserList = $queryBuilder ->select('uid') ->from('be_users') diff --git a/typo3/sysext/install/Classes/Updates/StartModuleUpdate.php b/typo3/sysext/install/Classes/Updates/StartModuleUpdate.php index f270362558fe..7f0f68820c07 100644 --- a/typo3/sysext/install/Classes/Updates/StartModuleUpdate.php +++ b/typo3/sysext/install/Classes/Updates/StartModuleUpdate.php @@ -35,9 +35,10 @@ class StartModuleUpdate extends AbstractUpdate */ public function checkForUpdate(&$description) { - $statement = GeneralUtility::makeInstance(ConnectionPool::class) - ->getConnectionForTable('be_users') - ->select(['uid', 'uc'], 'be_users', []); + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('be_users'); + $queryBuilder->getRestrictions()->removeAll(); + + $statement = $queryBuilder->select('uid', 'uc')->from('be_users')->execute(); $needsExecution = false; while ($backendUser = $statement->fetch()) { if ($backendUser['uc'] !== null) { @@ -69,6 +70,7 @@ public function checkForUpdate(&$description) public function performUpdate(array &$databaseQueries, &$customMessage) { $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('be_users'); + $queryBuilder->getRestrictions()->removeAll(); $statement = $queryBuilder->select('uid', 'uc')->from('be_users')->execute(); while ($backendUser = $statement->fetch()) { if ($backendUser['uc'] !== null) { @@ -79,6 +81,7 @@ public function performUpdate(array &$databaseQueries, &$customMessage) ) { $userConfig['startModule'] = 'help_AboutAbout'; $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('be_users'); + $queryBuilder->getRestrictions()->removeAll(); $queryBuilder->update('be_users') ->where( $queryBuilder->expr()->eq(