Start page / Advanced topics / Server-side release / Specific release / Ensuring accessibility (parent chain)
Ensuring accessibility (parent chain)
For calling AccessUtil.release(...) the following parameters were set:
releaseStartNode: Ref 1
ensureAccessibility: true
boolean recursive: false
DependentReleaseType: NO_DEPENDENT_RELEASE
The selected start node for the release is page reference “Ref 1”.
Ensuring accessibility (parent chain): Starting from the start node of the release “Ref 1”, the complete parent chain of the object up to the root node of the store is considered. Through the option ensureAccessibility, all nodes of the parent chain are released which were not yet ever released. Concretely, this means that objects which were already released once (changed objects) are not released through the option ensureAccessibility, not even if they have been changed by an addition, for example of a page reference.
If the option ensureAccessibility=false is set, the parent chain is not released; the elements to be released are, however, added to the release child list of the parent node. The following applies here:
- With changed parent nodes: The object to be released can be accessed in release state. The parent element, however, is not released.
- With new parent nodes: Because the parent node was never released, the object to be released in the release state cannot be reached. This can lead to invalid references in the release state.
Background: If a page reference is to be released even though the editor has no permission to release within the higher menu level, the page reference should still be taken over in the release state. Possible content changes within the menu level (for example, additional references), should, however, not be released with the ensureAccessibility option.
In the example, through a release of page reference “Ref 2” from “Editor A”, the newly created page reference and the newly created menu level “Folder 2” would be released. Menu level “Folder 1” is not released. So that the new menu level “Folder 2” (and with it the page reference “Ref 2”) is reachable in a released state, “Folder 2” is added with the option ensureAccessibility to the release child list of menu level “Folder 1”. With that, page reference “Ref 2” can be reached within the release state, but not the newly created page reference “Ref 1”. If “Editor B” now releases page reference “Ref 1”, this is also added to the release child list of the menu levels “Folder 1”. Because “Folder 1” is already reachable as a changed object via the release child list of the likewise changed folder “SS Folder”, the release is concluded with this. Both menu levels (“Folder 1” and “SS Folder”) are not released via the option, because it does not involve newly created objects.