From d4925ddbb43066a8752c791314d6d4fd0134d62d Mon Sep 17 00:00:00 2001
From: Morton Jonuschat <m.jonuschat@mojocode.de>
Date: Mon, 18 Apr 2016 19:52:03 +0200
Subject: [PATCH] [TASK] Rename QueryContextType::NONE to
 QueryContextType::UNRESTRICTED

This name change transports the intent of the query context better and
makes it more intuitive to use.

Instead of explicitly disabling all enable fields and the deleted flag
using the following code:

$queryBuilder->getQueryContext()
    ->setIgnoreEnableFields(true)
    ->setIncludeDeleted(true);

the more descriptive predefined context can be used:

$queryBuilder->getQueryContext()->setContext('unrestricted')

Releases: master
Resolves: #75751
Change-Id: I4d38a328c2b6707a32f26022b4abfc48e945c0ed
Reviewed-on: https://review.typo3.org/47759
Reviewed-by: Andreas Fernandez <typo3@scripting-base.de>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
Reviewed-by: Susanne Moog <typo3@susannemoog.de>
Tested-by: Susanne Moog <typo3@susannemoog.de>
---
 typo3/sysext/backend/Classes/History/RecordHistory.php   | 8 +++-----
 .../sysext/core/Classes/Database/Query/QueryContext.php  | 2 +-
 .../core/Classes/Database/Query/QueryContextType.php     | 2 +-
 .../Classes/Database/Query/QueryRestrictionBuilder.php   | 2 +-
 .../Unit/Database/Query/QueryRestrictionBuilderTest.php  | 5 +++--
 typo3/sysext/recycler/Classes/Domain/Model/Tables.php    | 9 +++------
 6 files changed, 12 insertions(+), 16 deletions(-)

diff --git a/typo3/sysext/backend/Classes/History/RecordHistory.php b/typo3/sysext/backend/Classes/History/RecordHistory.php
index acd500115bd6..3a5fba8a2436 100644
--- a/typo3/sysext/backend/Classes/History/RecordHistory.php
+++ b/typo3/sysext/backend/Classes/History/RecordHistory.php
@@ -17,12 +17,12 @@ namespace TYPO3\CMS\Backend\History;
 use TYPO3\CMS\Backend\Utility\BackendUtility;
 use TYPO3\CMS\Core\Database\ConnectionPool;
 use TYPO3\CMS\Core\Database\Query\QueryBuilder;
+use TYPO3\CMS\Core\Database\Query\QueryContextType;
 use TYPO3\CMS\Core\DataHandling\DataHandler;
 use TYPO3\CMS\Core\Imaging\Icon;
 use TYPO3\CMS\Core\Imaging\IconFactory;
 use TYPO3\CMS\Core\Utility\DiffUtility;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
-use TYPO3\CMS\Core\Utility\HttpUtility;
 use TYPO3\CMS\Fluid\View\StandaloneView;
 
 /**
@@ -663,10 +663,8 @@ class RecordHistory
                 // check if there are records on the page
                 /** @var QueryBuilder $queryBuilder */
                 $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable($tablename);
-                $queryBuilder
-                    ->getQueryContext()
-                    ->setIgnoreEnableFields(true)
-                    ->setIncludeDeleted(true);
+                $queryBuilder->getQueryContext()->setContext(QueryContextType::UNRESTRICTED);
+
                 $rows = $queryBuilder
                     ->select('uid')
                     ->from($tablename)
diff --git a/typo3/sysext/core/Classes/Database/Query/QueryContext.php b/typo3/sysext/core/Classes/Database/Query/QueryContext.php
index 393924b38c3a..caf0e4d8ff06 100644
--- a/typo3/sysext/core/Classes/Database/Query/QueryContext.php
+++ b/typo3/sysext/core/Classes/Database/Query/QueryContext.php
@@ -147,7 +147,7 @@ class QueryContext
             } elseif (TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_BE) {
                 return QueryContextType::BACKEND;
             } else {
-                return QueryContextType::NONE;
+                return QueryContextType::UNRESTRICTED;
             }
         }
 
diff --git a/typo3/sysext/core/Classes/Database/Query/QueryContextType.php b/typo3/sysext/core/Classes/Database/Query/QueryContextType.php
index f716411036e3..6ca782d26215 100644
--- a/typo3/sysext/core/Classes/Database/Query/QueryContextType.php
+++ b/typo3/sysext/core/Classes/Database/Query/QueryContextType.php
@@ -27,7 +27,7 @@ class QueryContextType extends \TYPO3\CMS\Core\Type\Enumeration
      * Constants reflecting the query context type
      */
     const AUTO = 'AUTO';
-    const NONE = 'NONE';
+    const UNRESTRICTED = 'UNRESTRICTED';
     const FRONTEND = 'FRONTEND';
     const BACKEND = 'BACKEND';
 
diff --git a/typo3/sysext/core/Classes/Database/Query/QueryRestrictionBuilder.php b/typo3/sysext/core/Classes/Database/Query/QueryRestrictionBuilder.php
index d46da949c96c..4d6c560b9e9c 100644
--- a/typo3/sysext/core/Classes/Database/Query/QueryRestrictionBuilder.php
+++ b/typo3/sysext/core/Classes/Database/Query/QueryRestrictionBuilder.php
@@ -92,7 +92,7 @@ class QueryRestrictionBuilder
                 return $this->getFrontendVisibilityRestrictions();
             case QueryContextType::BACKEND:
                 return $this->getBackendVisibilityConstraints();
-            case QueryContextType::NONE:
+            case QueryContextType::UNRESTRICTED:
                 return $this->expressionBuilder->andX();
             default:
                 throw new \RuntimeException(
diff --git a/typo3/sysext/core/Tests/Unit/Database/Query/QueryRestrictionBuilderTest.php b/typo3/sysext/core/Tests/Unit/Database/Query/QueryRestrictionBuilderTest.php
index e32b0702f784..2f5557242431 100644
--- a/typo3/sysext/core/Tests/Unit/Database/Query/QueryRestrictionBuilderTest.php
+++ b/typo3/sysext/core/Tests/Unit/Database/Query/QueryRestrictionBuilderTest.php
@@ -19,6 +19,7 @@ use Prophecy\Argument;
 use TYPO3\CMS\Core\Database\Connection;
 use TYPO3\CMS\Core\Database\Query\Expression\ExpressionBuilder;
 use TYPO3\CMS\Core\Database\Query\QueryContext;
+use TYPO3\CMS\Core\Database\Query\QueryContextType;
 use TYPO3\CMS\Core\Database\Query\QueryRestrictionBuilder;
 use TYPO3\CMS\Core\Tests\Unit\Database\Mocks\MockPlatform;
 use TYPO3\CMS\Core\Tests\UnitTestCase;
@@ -85,9 +86,9 @@ class QueryRestrictionBuilderTest extends UnitTestCase
     /**
      * @test
      */
-    public function getVisibilityConstraintsReturnsEmptyConstraintForNoneContext()
+    public function getVisibilityConstraintsReturnsEmptyConstraintForUnrestrictedContext()
     {
-        $this->queryContext->setContext('none');
+        $this->queryContext->setContext(QueryContextType::UNRESTRICTED);
 
         $subject = GeneralUtility::makeInstance(
             QueryRestrictionBuilder::class,
diff --git a/typo3/sysext/recycler/Classes/Domain/Model/Tables.php b/typo3/sysext/recycler/Classes/Domain/Model/Tables.php
index e0670131feaf..a17270ec37f6 100644
--- a/typo3/sysext/recycler/Classes/Domain/Model/Tables.php
+++ b/typo3/sysext/recycler/Classes/Domain/Model/Tables.php
@@ -14,9 +14,9 @@ namespace TYPO3\CMS\Recycler\Domain\Model;
  * The TYPO3 project - inspiring people to share!
  */
 
-use TYPO3\CMS\Core\Utility\GeneralUtility;
-use TYPO3\CMS\Core\Database\Connection;
 use TYPO3\CMS\Core\Database\ConnectionPool;
+use TYPO3\CMS\Core\Database\Query\QueryContextType;
+use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Recycler\Utility\RecyclerUtility;
 
 /**
@@ -42,10 +42,7 @@ class Tables
             if ($deletedField) {
                 // Determine whether the table has deleted records:
                 $queryBuilder = $connection->getQueryBuilderForTable($tableName);
-                $queryBuilder
-                    ->getQueryContext()
-                    ->setIgnoreEnableFields(true)
-                    ->setIncludeDeleted(true);
+                $queryBuilder->getQueryContext()->setContext(QueryContextType::UNRESTRICTED);
 
                 $deletedCount = $queryBuilder->count('uid')
                     ->from($tableName)
-- 
GitLab