Allow non-uuid node identifiers
This replaces all occurrences of node identifier validation against the UUID pattern with a validation against a less restrictive NodeIdentifier pattern In addition to removing the restriction that characters have to appear in a specific order, it also allows all other lowercase characters.
Allow to select all changes in a document with one click
The workspace module shows changes grouped by document, but until now there it was only possible to select individual or all changes for further action. This change adds the possibility to select all changes on a document with a single click.
Setting authentication provider on new user creation in user backend module
Allow setting authentication provider on new user creation in user backend module. If less then two providers are given, the selector does not appear and the default authentication provider is used. Same as no authentication provider is explicit selected.
Add ModulePrivilege to protect Neos Backend modules
Introduces a new Privilege ModulePrivilege that should be used to access-protect Neos Backend modules. Usage:
privilegeTargets: 'Neos\\Neos\\Security\\Authorization\\Privilege\\ModulePrivilege': 'SomePrivilegeTargetIdentifier': matcher: 'module/path'
This new privilege will be used to hide links to inaccessible modules in the Backend. Furthermore they automatically protect access to all actions of the configured controller of the affected module.
Setting a privilegeTarget in the module settings is still supported but deprecated as of Neos 3.2.
HtmlAugmenter will augment plaintext with the given fallback-tag
If plaintext is given to the html augmenter now uses the fallback-tag as it already does if multiple tags are found on the same level.
This fixed the problem of contents not beeing selectable in the backend if no tags are found but just some text.
Add async flag to the
Adds support for generating asynchronous image URIs in case the requested image does not exist already. The feature is already supported in the ImageViewHelper but was missing in the fusion objects.
This works as follows:
If a resource still has to be processed a /media/thumbnail-uri is rendered that will do the actual processing and return the image.
Later if the resource is already processed the _Resource-uri is rendered as previously.
Fallback graph visualization
The content repository is extended by two essential features,
The Intra Dimensional Fallback Graph
The Inter Dimensional Fallback Graph
which are supposed to be used for graph-aware projections in future versions.
These can be populated in-memory from the registered
DimensionPresetSourceInterface by an application service and thus provide a read-only interface for applications in need of fallback logic.
In addition, Neos is extended by a backend module that visualizes these fallbacks. They are displayed as an interactive graph using SVG and vanilla JS.
This can be tested/verified by setting up an arbitrary dimension configuration and visiting the Dimensions administration module
Add extension point for domain specific languages to fusion
DSLs are implemented for fusion-assignments using the tagged-template-string syntax of es6. DSL-identifiers are configured in the configuration key Neos.Fusion.dsl. The configured objects must satisfy the DslInterface and return fusion code that is parsed by the fusion-parser afterwards.
value = dslExample`... the code that is passed to the dsl ...`
In addition this pr adds a schema for the fusion part of the Settings and integrates it into the automatic schema-validation.
Allow strings and arrays in
This makes the CachingHelper::nodeTypeTag method much more flexible for it’s use case by allowing also strings and arrays (or \Traversable) as input, always returning an array of tags to be applied and gracefully ignoring anything that won’t result in a valid tag.
Evaluate @if in fusion as falsy or truthy values
The behavior of
@if is altered to make the distinction between falsy or truthy
values and no longer check for an exactly false value in the condition-expression.
For the distinction the php rules for casting to boolean are applied.
Examples for falsy-values that are now detected in
Additionally all changes in Flow 4.2 apply, see the release notes to further information. See http://flowframework.readthedocs.org/en/4.2/TheDefinitiveGuide/PartV/ReleaseNotes/420.html