diff --git a/typo3/sysext/backend/Classes/Controller/Page/TreeController.php b/typo3/sysext/backend/Classes/Controller/Page/TreeController.php index d5c6fda57a58aa719a3ebdf8f3233af24d45d9a4..2e08c1bc5cb03ada6626d0441e26bbef40aa8ce7 100644 --- a/typo3/sysext/backend/Classes/Controller/Page/TreeController.php +++ b/typo3/sysext/backend/Classes/Controller/Page/TreeController.php @@ -239,6 +239,7 @@ class TreeController */ protected function pagesToFlatArray(array $page, int $entryPoint, int $depth = 0, array $inheritedData = []): array { + $backendUser = $this->getBackendUser(); $pageId = (int)$page['uid']; if (in_array($pageId, $this->hiddenRecords, true)) { return []; @@ -295,7 +296,10 @@ class TreeController 'workspaceId' => !empty($page['t3ver_oid']) ? $page['t3ver_oid'] : $pageId, 'siblingsCount' => $page['siblingsCount'] ?? 1, 'siblingsPosition' => $page['siblingsPosition'] ?? 1, - 'allowDelete' => $this->getBackendUser()->doesUserHaveAccess($page, Permission::PAGE_DELETE) + 'allowDelete' => $backendUser->doesUserHaveAccess($page, Permission::PAGE_DELETE), + 'allowEdit' => $backendUser->doesUserHaveAccess($page, Permission::PAGE_EDIT) + && $backendUser->check('tables_modify', 'pages') + && $backendUser->checkLanguageAccess(0) ]; if (!empty($page['_children'])) { diff --git a/typo3/sysext/backend/Resources/Public/JavaScript/PageTree/PageTree.js b/typo3/sysext/backend/Resources/Public/JavaScript/PageTree/PageTree.js index e08f5f67a004fc1e201aa2b48a7b60392cd5dd89..bd7c8da35a6bbb33b40fe86cc072a5c19c6dcad9 100644 --- a/typo3/sysext/backend/Resources/Public/JavaScript/PageTree/PageTree.js +++ b/typo3/sysext/backend/Resources/Public/JavaScript/PageTree/PageTree.js @@ -482,6 +482,10 @@ define(['jquery', PageTree.prototype.editNodeLabel = function(node) { var _this = this; + if (!node.allowEdit) { + return; + } + _this.removeEditedText(); _this.nodeIsEdit = true;