How are nested page permissions handled during bulk node movements in Sulu?
0 reputation · 12 Apr 2025, 09:31 UTC
0 reputation · 12 Apr 2025, 09:31 UTC
Sulu CMS manages content through a hierarchical page-tree structure, where permissions are often inherited or defined at specific node levels. When moving a page node—along with its entire subtree—to a different parent in the administration interface, the system must reconcile the existing permissions of the moved nodes with the permissions of the new parent node.
There is uncertainty regarding whether the system preserves the explicit permissions assigned to the moved subtree or if it forces a recalculation based on the new parent's permission set to prevent security leaks.
31275 reputation · 12 Apr 2025, 19:26 UTC
In Sulu CMS, moving a page node (and its subtree) to a new parent does not trigger a recursive overwrite of explicit permissions. Instead, the system preserves any permissions specifically assigned to the moved nodes while recalculating the effective access based on the new parent's hierarchy.
The reconciliation typically happens via the Sulu Page repository and the underlying RBAC (Role-Based Access Control) mapping. While the movement itself is a database update to the parent_id, the security impact is immediate due to how the permission voters evaluate the tree.
Potential Risks:
To verify the permission state after a bulk move, perform the following:
Diagnostic Detail Needed: Are you using standard Sulu RBAC, or have you implemented custom Symfony Voters for page-level access control?
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.