diff --git a/typo3/sysext/extbase/Classes/Configuration/BackendConfigurationManager.php b/typo3/sysext/extbase/Classes/Configuration/BackendConfigurationManager.php index 486b83997a364cdca030e2b3227eae15f73f730f..6a0493c8c5187c38f6ae0e90d2749ddadada0ca5 100644 --- a/typo3/sysext/extbase/Classes/Configuration/BackendConfigurationManager.php +++ b/typo3/sysext/extbase/Classes/Configuration/BackendConfigurationManager.php @@ -230,8 +230,9 @@ class BackendConfigurationManager extends \TYPO3\CMS\Extbase\Configuration\Abstr $recursiveStoragePids = ''; $storagePids = \TYPO3\CMS\Core\Utility\GeneralUtility::intExplode(',', $storagePid); + $permsClause = $this->getBackendUser()->getPagePermsClause(1); foreach ($storagePids as $startPid) { - $pids = $this->queryGenerator->getTreeList($startPid, $recursionDepth, 0, 1); + $pids = $this->queryGenerator->getTreeList($startPid, $recursionDepth, 0, $permsClause); if ((string)$pids !== '') { $recursiveStoragePids .= $pids . ','; } @@ -239,4 +240,12 @@ class BackendConfigurationManager extends \TYPO3\CMS\Extbase\Configuration\Abstr return rtrim($recursiveStoragePids, ','); } + + /** + * @return \TYPO3\CMS\Core\Authentication\BackendUserAuthentication + */ + protected function getBackendUser() + { + return $GLOBALS['BE_USER']; + } } diff --git a/typo3/sysext/extbase/Tests/Unit/Configuration/BackendConfigurationManagerTest.php b/typo3/sysext/extbase/Tests/Unit/Configuration/BackendConfigurationManagerTest.php index 2eefaa41126ea860e6de9c1e2016c847fff774ce..638e82a32227238aff480fd6b9837f752c5b9eef 100644 --- a/typo3/sysext/extbase/Tests/Unit/Configuration/BackendConfigurationManagerTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Configuration/BackendConfigurationManagerTest.php @@ -13,6 +13,7 @@ namespace TYPO3\CMS\Extbase\Tests\Unit\Configuration; * * The TYPO3 project - inspiring people to share! */ +use Prophecy\Prophecy\ObjectProphecy; /** * Test case @@ -337,6 +338,12 @@ class BackendConfigurationManagerTest extends \TYPO3\CMS\Core\Tests\UnitTestCase { $storagePid = '1,2,3'; $recursive = 99; + + /** @var \TYPO3\CMS\Core\Authentication\BackendUserAuthentication|ObjectProphecy $beUserAuthentication */ + $beUserAuthentication = $this->prophesize(\TYPO3\CMS\Core\Authentication\BackendUserAuthentication::class); + $beUserAuthentication->getPagePermsClause(1)->willReturn('1=1'); + $GLOBALS['BE_USER'] = $beUserAuthentication->reveal(); + /** @var $abstractConfigurationManager \TYPO3\CMS\Extbase\Configuration\BackendConfigurationManager */ $abstractConfigurationManager = $this->getAccessibleMock(\TYPO3\CMS\Extbase\Configuration\BackendConfigurationManager::class, array('overrideSwitchableControllerActions', 'getContextSpecificFrameworkConfiguration', 'getTypoScriptSetup', 'getPluginConfiguration', 'getSwitchableControllerActions')); $queryGenerator = $this->getMock(\TYPO3\CMS\Core\Database\QueryGenerator::class); @@ -357,6 +364,12 @@ class BackendConfigurationManagerTest extends \TYPO3\CMS\Core\Tests\UnitTestCase { $storagePid = '1,2,-3'; $recursive = 99; + + /** @var \TYPO3\CMS\Core\Authentication\BackendUserAuthentication|ObjectProphecy $beUserAuthentication */ + $beUserAuthentication = $this->prophesize(\TYPO3\CMS\Core\Authentication\BackendUserAuthentication::class); + $beUserAuthentication->getPagePermsClause(1)->willReturn('1=1'); + $GLOBALS['BE_USER'] = $beUserAuthentication->reveal(); + /** @var $abstractConfigurationManager \TYPO3\CMS\Extbase\Configuration\BackendConfigurationManager */ $abstractConfigurationManager = $this->getAccessibleMock(\TYPO3\CMS\Extbase\Configuration\BackendConfigurationManager::class, array('overrideSwitchableControllerActions', 'getContextSpecificFrameworkConfiguration', 'getTypoScriptSetup', 'getPluginConfiguration', 'getSwitchableControllerActions')); $queryGenerator = $this->getMock(\TYPO3\CMS\Core\Database\QueryGenerator::class);