public class WorkspaceAccessControlList extends AccessControlList<WorkspaceAccessControlList.Entry>
WorkspaceAccessFieldFactory
Modifier and Type | Class and Description |
---|---|
static class |
WorkspaceAccessControlList.Entry
An extended entry for the workspace ACLs, with notion of access type and sanitized path.
|
AccessControlList.EntryKey
Modifier and Type | Field and Description |
---|---|
static long |
ACCESS_TYPE_CHILDREN |
static long |
ACCESS_TYPE_NODE |
static long |
ACCESS_TYPE_NODE_AND_CHILDREN |
PATH_PROPERTY_NAME, PERMISSIONS_PROPERTY_NAME
Constructor and Description |
---|
WorkspaceAccessControlList() |
Modifier and Type | Method and Description |
---|---|
protected Collection<WorkspaceAccessControlList.Entry> |
createEntries(javax.jcr.Node aclNode)
Entries are read and eventually merged with combined access type
if two entries are found with same base path and permission.
|
protected WorkspaceAccessControlList.Entry |
doCreateRawEntry(long permissions,
String path)
Create specialized ACL entries, with access type.
|
void |
saveEntries(javax.jcr.Node aclNode)
Entries are saved as follows, according to their access types:
ACCESS_TYPE_NODE : creates a single node per entry, with base path and permission value
ACCESS_TYPE_CHILDREN : creates a single node per entry, with path (wildcard appended) and permission value
ACCESS_TYPE_NODE_AND_CHILDREN : creates two nodes per entry, one for each of the above cases, with same permission value
|
addEntry, createEntry, getEntries, getEntryByNode, readEntries, readEntry, removeEntry
public static final long ACCESS_TYPE_NODE
public static final long ACCESS_TYPE_CHILDREN
public static final long ACCESS_TYPE_NODE_AND_CHILDREN
protected Collection<WorkspaceAccessControlList.Entry> createEntries(javax.jcr.Node aclNode) throws javax.jcr.RepositoryException
createEntries
in class AccessControlList<WorkspaceAccessControlList.Entry>
javax.jcr.RepositoryException
protected WorkspaceAccessControlList.Entry doCreateRawEntry(long permissions, String path)
doCreateRawEntry
in class AccessControlList<WorkspaceAccessControlList.Entry>
public void saveEntries(javax.jcr.Node aclNode) throws javax.jcr.RepositoryException
ACCESS_TYPE_NODE
: creates a single node per entry, with base path and permission valueACCESS_TYPE_CHILDREN
: creates a single node per entry, with path (wildcard appended) and permission valueACCESS_TYPE_NODE_AND_CHILDREN
: creates two nodes per entry, one for each of the above cases, with same permission valueTherefore, access type value is not persisted directly to ACL entry nodes.
This also performs additional cleanup upfront, in case the list contains redundant entries.
saveEntries
in class AccessControlList<WorkspaceAccessControlList.Entry>
aclNode
- the JCR node corresponding to the given ACL, usually named acl_<foobar>
javax.jcr.RepositoryException
Copyright © 2021 Magnolia International Ltd.. All rights reserved.