Fork me on GitHub

Multiplexing support in the PermissionStore

General Notes

Multiplexing support is implemented as a composite PermissionProvider made of the default workspace provider and the existing mounts. This is available since Oak 1.7.3 OAK-3777.

PermissionStore Evaluation (reading)

Given the following mount setup

private
    - /libs
    - /apps
default
    - /

In above setup nodes under /apps and /libs (include apps and libs) are part of “private” mount (mount name is “private”) and all other paths are part of default mount. A dedicated PermissionStore will be created under oak:mount-private-default that contains information relevant to this specific mount.

/jcr:system/rep:permissionStore
    + oak:mount-private-default
        + editor //principal name
            + 1345610890 (rep:PermissionStore) //path hash
                - rep:accessControlledPath = /libs
                    + 0
                      - rep:isAllow = false
                      - rep:privileges = [1279]
    + default  //workspace name
        + editor //principal name
            + 1227964008 (rep:PermissionStore) //path hash
                - rep:accessControlledPath = /content
                    + 0
                      - rep:isAllow = true
                      - rep:privileges = [1279]

PermissionStore updates (writing)

The PermissionHook is now mount-aware and will delegate changes to specific path to their designated components based on path.