Interface Privilege
-
public interface PrivilegeA privilege represents the capability of performing a particular set of operations on items in the JCR repository. Each privilege is identified by a JCR name. JCR defines a set of standard privileges in thejcrnamespace. Implementations may add additional privileges in namespaces other thanjcr.A privilege may be an aggregate privilege. Aggregate privileges are sets of other privileges. Granting, denying, or testing an aggregate privilege is equivalent to individually granting, denying, or testing each privilege it contains. The privileges contained by an aggregate privilege may themselves be aggregate privileges if the resulting privilege graph is acyclic.
A privilege may be an abstract privilege. Abstract privileges cannot themselves be granted or denied, but can be composed into aggregate privileges which are granted or denied.
A privilege can be both aggregate and abstract.
- Since:
- JCR 2.0
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringJCR_ADD_CHILD_NODESA constant representingjcr:addChildNodes(in expanded form), the privilege to create child nodes of a node.static java.lang.StringJCR_ALLA constant representingjcr:all(in expanded form), an aggregate privilege that contains all predefined privileges.static java.lang.StringJCR_LIFECYCLE_MANAGEMENTA constant representingjcr:lifecycleManagement(in expanded form), the privilege to perform lifecycle operations on a node.static java.lang.StringJCR_LOCK_MANAGEMENTA constant representingjcr:lockManagement(in expanded form), the privilege to lock and unlock a node.static java.lang.StringJCR_MODIFY_ACCESS_CONTROLA constant representingjcr:modifyAccessControl(in expanded form), the privilege to modify the access control policies of a node.static java.lang.StringJCR_MODIFY_PROPERTIESA constant representingjcr:modifyProperties(in expanded form), the privilege to create, modify and remove the properties of a node.static java.lang.StringJCR_NODE_TYPE_MANAGEMENTA constant representingjcr:nodeTypeManagement(in expanded form), the privilege to add and remove mixin node types and change the primary node type of a node.static java.lang.StringJCR_READA constant representingjcr:read(in expanded form), the privilege to retrieve a node and get its properties and their values.static java.lang.StringJCR_READ_ACCESS_CONTROLA constant representingjcr:readAccessControl(in expanded form), the privilege to get the access control policy of a node.static java.lang.StringJCR_REMOVE_CHILD_NODESA constant representingjcr:removeChildNodes(in expanded form), the privilege to remove child nodes of a node.static java.lang.StringJCR_REMOVE_NODEA constant representingjcr:removeNode(in expanded form), the privilege to remove a node.static java.lang.StringJCR_RETENTION_MANAGEMENTA constant representingjcr:retentionManagement(in expanded form), the privilege to perform retention management operations on a node.static java.lang.StringJCR_VERSION_MANAGEMENTA constant representingjcr:versionManagement(in expanded form), the privilege to perform versioning operations on a node.static java.lang.StringJCR_WRITEA constant representingjcr:write(in expanded form), an aggregate privilege that contains:jcr:modifyPropertiesjcr:addChildNodesjcr:removeNodejcr:removeChildNodes
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Privilege[]getAggregatePrivileges()If this privilege is an aggregate privilege, returns the privileges it contains, the privileges contained by any aggregate privileges among those, and so on (the transitive closure of privileges contained by this privilege).Privilege[]getDeclaredAggregatePrivileges()If this privilege is an aggregate privilege, returns the privileges directly contained by the aggregate privilege.java.lang.StringgetName()Returns the name of this privilege.booleanisAbstract()Returns whether this privilege is an abstract privilege.booleanisAggregate()Returns whether this privilege is an aggregate privilege.
-
-
-
Field Detail
-
JCR_READ
static final java.lang.String JCR_READ
A constant representingjcr:read(in expanded form), the privilege to retrieve a node and get its properties and their values.- See Also:
- Constant Field Values
-
JCR_MODIFY_PROPERTIES
static final java.lang.String JCR_MODIFY_PROPERTIES
A constant representingjcr:modifyProperties(in expanded form), the privilege to create, modify and remove the properties of a node.- See Also:
- Constant Field Values
-
JCR_ADD_CHILD_NODES
static final java.lang.String JCR_ADD_CHILD_NODES
A constant representingjcr:addChildNodes(in expanded form), the privilege to create child nodes of a node.- See Also:
- Constant Field Values
-
JCR_REMOVE_NODE
static final java.lang.String JCR_REMOVE_NODE
A constant representingjcr:removeNode(in expanded form), the privilege to remove a node.In order to actually remove a node requires
jcr:removeNodeon that node andjcr:removeChildNodeson the parent node.The distinction is provided in order to reflect implementations that internally model "remove" as a "delete" instead of a "unlink". A repository that uses the "delete" model can have
jcr:removeChildNodesin every access control policy, so that removal is effectively controlled byjcr:removeNode.- See Also:
- Constant Field Values
-
JCR_REMOVE_CHILD_NODES
static final java.lang.String JCR_REMOVE_CHILD_NODES
A constant representingjcr:removeChildNodes(in expanded form), the privilege to remove child nodes of a node. In order to actually remove a node requiresjcr:removeNodeon that node andjcr:removeChildNodeson the parent node.The distinction is provided in order to reflect implementations that internally model "remove" as a "unlink" instead of a "delete". A repository that uses the "unlink" model can have
jcr:removeNodein every access control policy, so that removal is effectively controlled byjcr:removeChildNodes.- See Also:
- Constant Field Values
-
JCR_WRITE
static final java.lang.String JCR_WRITE
A constant representingjcr:write(in expanded form), an aggregate privilege that contains:jcr:modifyPropertiesjcr:addChildNodesjcr:removeNodejcr:removeChildNodes
- See Also:
- Constant Field Values
-
JCR_READ_ACCESS_CONTROL
static final java.lang.String JCR_READ_ACCESS_CONTROL
A constant representingjcr:readAccessControl(in expanded form), the privilege to get the access control policy of a node.- See Also:
- Constant Field Values
-
JCR_MODIFY_ACCESS_CONTROL
static final java.lang.String JCR_MODIFY_ACCESS_CONTROL
A constant representingjcr:modifyAccessControl(in expanded form), the privilege to modify the access control policies of a node.- See Also:
- Constant Field Values
-
JCR_LOCK_MANAGEMENT
static final java.lang.String JCR_LOCK_MANAGEMENT
A constant representingjcr:lockManagement(in expanded form), the privilege to lock and unlock a node.- See Also:
- Constant Field Values
-
JCR_VERSION_MANAGEMENT
static final java.lang.String JCR_VERSION_MANAGEMENT
A constant representingjcr:versionManagement(in expanded form), the privilege to perform versioning operations on a node.- See Also:
- Constant Field Values
-
JCR_NODE_TYPE_MANAGEMENT
static final java.lang.String JCR_NODE_TYPE_MANAGEMENT
A constant representingjcr:nodeTypeManagement(in expanded form), the privilege to add and remove mixin node types and change the primary node type of a node.- See Also:
- Constant Field Values
-
JCR_RETENTION_MANAGEMENT
static final java.lang.String JCR_RETENTION_MANAGEMENT
A constant representingjcr:retentionManagement(in expanded form), the privilege to perform retention management operations on a node.- See Also:
- Constant Field Values
-
JCR_LIFECYCLE_MANAGEMENT
static final java.lang.String JCR_LIFECYCLE_MANAGEMENT
A constant representingjcr:lifecycleManagement(in expanded form), the privilege to perform lifecycle operations on a node.- See Also:
- Constant Field Values
-
JCR_ALL
static final java.lang.String JCR_ALL
A constant representingjcr:all(in expanded form), an aggregate privilege that contains all predefined privileges.jcr:readjcr:writejcr:readAccessControljcr:modifyAccessControljcr:lockManagementjcr:versionManagementjcr:nodeTypeManagementjcr:retentionManagementjcr:lifecycleManagement
- See Also:
- Constant Field Values
-
-
Method Detail
-
getName
java.lang.String getName()
Returns the name of this privilege.Since the privilege name is a JCR name, it must be returned in qualified form, according to the prevailing namespace-to-prefix mapping in the current
Session(see the specification for details on JCR names).- Returns:
- the name of this privilege.
-
isAbstract
boolean isAbstract()
Returns whether this privilege is an abstract privilege.- Returns:
trueif this privilege is an abstract privilege;falseotherwise.
-
isAggregate
boolean isAggregate()
Returns whether this privilege is an aggregate privilege.- Returns:
trueif this privilege is an aggregate privilege;falseotherwise.
-
getDeclaredAggregatePrivileges
Privilege[] getDeclaredAggregatePrivileges()
If this privilege is an aggregate privilege, returns the privileges directly contained by the aggregate privilege. Otherwise returns an empty array.- Returns:
- an array of
Privileges
-
getAggregatePrivileges
Privilege[] getAggregatePrivileges()
If this privilege is an aggregate privilege, returns the privileges it contains, the privileges contained by any aggregate privileges among those, and so on (the transitive closure of privileges contained by this privilege). Otherwise returns an empty array.- Returns:
- an array of
Privileges
-
-