From 8ea2cea392e99989214cea21db557f4aeb060713 Mon Sep 17 00:00:00 2001
From: Simon Praetorius <simon@praetorius.me>
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 <no-reply@typo3.com>
Reviewed-by: Matthias Vogel <typo3@kanti.de>
Tested-by: Matthias Vogel <typo3@kanti.de>
Reviewed-by: Jan Helke <typo3@helke.de>
Tested-by: Jan Helke <typo3@helke.de>
---
 .../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 @@ class SystemMaintainerWrite extends AbstractAjaxAction
         }
 
         $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 @@ class StartModuleUpdate extends AbstractUpdate
     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 @@ class StartModuleUpdate extends AbstractUpdate
                 ) {
                     $userConfig['startModule'] = 'help_AboutAbout';
                     $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('be_users');
+                    $queryBuilder->getRestrictions()->removeAll();
                     $queryBuilder->update('be_users')
                         ->where(
                             $queryBuilder->expr()->eq(
-- 
GitLab