From f9b3245e41a9ca14d7b5fb455d2d5a7cf8e6df55 Mon Sep 17 00:00:00 2001
From: Benni Mack <benni@typo3.org>
Date: Mon, 6 Apr 2020 10:26:40 +0200
Subject: [PATCH] [BUGFIX] Avoid 500 error for non-admins in page tree
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This patch prevents throwing and spamming the logs
with 500 server errors.

Resolves: #91145
Releases: master, 9.5
Change-Id: I9385a9c0a2a665cedb1340cc8397740b0bd6255e
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/64084
Tested-by: Frank Nägler <frank.naegler@typo3.org>
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: Frank Nägler <frank.naegler@typo3.org>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de>
---
 .../sysext/backend/Classes/Controller/Page/TreeController.php  | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/typo3/sysext/backend/Classes/Controller/Page/TreeController.php b/typo3/sysext/backend/Classes/Controller/Page/TreeController.php
index 75b41b874d7a..4eb082647f05 100644
--- a/typo3/sysext/backend/Classes/Controller/Page/TreeController.php
+++ b/typo3/sysext/backend/Classes/Controller/Page/TreeController.php
@@ -248,6 +248,9 @@ class TreeController
         if (in_array($pageId, $this->hiddenRecords, true)) {
             return [];
         }
+        if ($pageId === 0 && !$backendUser->isAdmin()) {
+            return [];
+        }
 
         $stopPageTree = !empty($page['php_tree_stop']) && $depth > 0;
         $identifier = $entryPoint . '_' . $pageId;
-- 
GitLab