4.3.16 (2020-08-14)
Overview of merged pull requests
TASK: Improve wording of include/exclude concepts where possible
Matching change with https://github.com/neos/flow-development-collection/pull/2024
Packages:
ContentRepository
BUGFIX: Prevent refetching nodes for policy checks
When defining a policy targeting a static node the static node was refetched for every subject, slowing down policy information retrieval.
This adds a simple caching mechanism to NodePrivilegeContext::getNodeByIdentifier that prevents nodes from being refetched for static policy comparisons.
Resolves #2301
Packages:
Browser
ContentRepository
TASK: Apply fixes from StyleCI
This pull request applies code style fixes from an analysis carried out by [StyleCI](https://github.styleci.io).
—
For more information, click [here](https://github.styleci.io/analyses/OMdgkW).
Apply fixes from StyleCI
This pull request applies code style fixes from an analysis carried out by [StyleCI](https://github.styleci.io).
—
For more information, click [here](https://github.styleci.io/analyses/lKyEJV).
Packages:
Browser
ContentRepository
Diff
Fusion
Media
Neos
BUGFIX: Variants tab does not use mainRequest in form when opened from inspector
This adds a condition for using the parentRequest only if it is not the mainRequest already.
Fixes #3005
Packages:
Browser
BUGFIX: Make child nodes of hidden parents inaccessible
Since a couple of months child nodes of hidden nodes are accessible (outside the Neos backend). This change restores the initial behavior and makes sure that accessing child nodes from hidden nodes will lead to a 404 response.
resolves: https://github.com/neos/neos-development-collection/issues/2983
Packages:
ContentRepository
Neos
!!! BUGFIX: Speed up node move actions
Due to an issue in how Doctrine 2.x handles the computation of changesets when given entities to commit it recomputed the changesets for all entities for every entity. Leading to n^2 change computations.
In a large project this improved the moving of ~750 nodes from 1.7m to 8.5s. In the demo site moving the “features” page from 4s to 1.65s. Publishing seems to be only slightly (~10%) faster to its different behaviour in the CR.
What I did
Which this change this behaviour is circumvented by commiting all entities at once. Including entities which might not have been included with the previous code but would have been persisted at the end of the request anyway.
What is breaking This change leads to all entities scheduled for persistence to actually persist when a node is changed, see following comparison timelines:
Old: 1. Create Entity, mark for insertion 2. change node 3. controller call is done / persistAll was called -> entity from step one is now persisted
New: 1. Create Entity, mark for insertion 2. change node (entity will be persisted at this point) 3. controller call is done / persistAll was called -> nothing happens anymore.
How I did it
Replace the repeated flush calls to the entity manager with a single one.
This should only lead to a behavioural change if custom code would modify a node then move other nodes and expect the the first node was not persisted yet.
How to verify it
Move a large set of pages with subpages and nodes in the Neos backend.
Check the request time of the change xhr request.
Apply this patch
Repeat steps 1 + 2 and compare
Example screenshots:
Before:
<img width=”600” alt=”before-change” src=”https://user-images.githubusercontent.com/596967/87766599-b4b94600-c819-11ea-9777-0bbe11f84d3a.png”>
After:
<img width=”600” alt=”after-change” src=”https://user-images.githubusercontent.com/596967/87766608-b7b43680-c819-11ea-83f9-2fbf1993cda7.png”>
Packages:
ContentRepository
TASK: Remove curly brace string offset access for PHP 7.4 compatibility
What I did I changed string offset access from curly-braces to brackets
Packages:
Diff
Neos