From 0e6c71ce1f4270a1b9beb70089c4c0095774d715 Mon Sep 17 00:00:00 2001 From: Marc Henry Schultz <85400359+mhsdesign@users.noreply.github.com> Date: Fri, 6 Dec 2024 11:12:56 +0100 Subject: [PATCH] BUGFIX: Add content element wrapping to restricted nodes (#3888) Previously opening a document where some nodes were not permitted to be edited was hard to navigate, as the content element wrapping was not rendered. Clicking into the elements showed no outline and navigation via the content tree was not possible. But more importantly inserting nodes into the content collection were likely misplaced until reloading as the Neos Ui does not understand the structure of the site. Instead - as reading the nodes and its information is permitted and needed for rendering - we will always wrap content elements if editable or not. To avoid having to boot the ckeditor for inline elements we instead evaluate the edit permission there and decide to hide the inline element wrapping. (Previously they would be rendered but not booted because the neos ui didnt had the outer content element wrapping) --- Classes/Aspects/AugmentationAspect.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Classes/Aspects/AugmentationAspect.php b/Classes/Aspects/AugmentationAspect.php index 1138d150de..c29f45d82d 100644 --- a/Classes/Aspects/AugmentationAspect.php +++ b/Classes/Aspects/AugmentationAspect.php @@ -145,6 +145,10 @@ public function editableElementAugmentation(JoinPointInterface $joinPoint) return $content; } + if ($this->nodeAuthorizationService->isGrantedToEditNode($node) === false) { + return $content; + } + $content = $joinPoint->getAdviceChain()->proceed($joinPoint); $attributes = [ @@ -166,6 +170,6 @@ protected function needsMetadata(NodeInterface $node, $renderCurrentDocumentMeta /** @var $contentContext ContentContext */ $contentContext = $node->getContext(); - return ($contentContext->isInBackend() === true && ($renderCurrentDocumentMetadata === true || $this->nodeAuthorizationService->isGrantedToEditNode($node) === true)); + return $contentContext->isInBackend() === true || $renderCurrentDocumentMetadata === true; } }