Interface AccessControlEditor
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description AccessControlPolicy[]
editAccessControlPolicies(String nodePath)
Retrieves the editable policies for the Node identified by the givennodePath
that are applicable but have not yet have been set.
The AccessControlPolicy objects returned are detached from the underlyingAccessControlProvider
and is only an external representation.JackrabbitAccessControlPolicy[]
editAccessControlPolicies(Principal principal)
Returns an array of editable policies for the givenprincipal
.AccessControlPolicy[]
getPolicies(String nodePath)
Retrieves the policies for the Node identified by the givennodePath
.JackrabbitAccessControlPolicy[]
getPolicies(Principal principal)
Retrieves the policies that have been applied before for the givenprincipal
.void
removePolicy(String nodePath, AccessControlPolicy policy)
Removes the specified policy from the node atnodePath
.void
setPolicy(String nodePath, AccessControlPolicy policy)
Stores the policy template to the respective node.
-
-
-
Method Detail
-
getPolicies
AccessControlPolicy[] getPolicies(String nodePath) throws AccessControlException, PathNotFoundException, RepositoryException
Retrieves the policies for the Node identified by the givennodePath
. In contrast toeditAccessControlPolicies(java.lang.String)
this method returns an empty array if no policy has been applied before by callingsetPolicy(java.lang.String, javax.jcr.security.AccessControlPolicy)
). Still the returned policies are detached from theAccessControlProvider
and are only an external representation. Modification will therefore not take effect, until they are written back to the editor and persisted.Compared to the policy returned by
AccessControlProvider.getEffectivePolicies(org.apache.jackrabbit.spi.Path, CompiledPermissions)
, the scope of the policies it limited to the Node itself and does not take inherited elements into account.- Parameters:
nodePath
- Absolute path to an existing node object.- Returns:
- the policies applied so far or an empty array if no policy has been applied to the node before.
- Throws:
AccessControlException
- If the Node identified by the givennodePath
does not allow access control modifications (e.g. the node itself stores the access control information for its parent).PathNotFoundException
- if no node exists for the givennodePath
.RepositoryException
- if an error occurs
-
getPolicies
JackrabbitAccessControlPolicy[] getPolicies(Principal principal) throws AccessControlException, RepositoryException
Retrieves the policies that have been applied before for the givenprincipal
. In contrast toeditAccessControlPolicies(java.lang.String)
this method returns an empty array if no policy has been applied before by callingsetPolicy(java.lang.String, javax.jcr.security.AccessControlPolicy)
). Still the returned policies are detached from theAccessControlProvider
and are only an external representation. Modification will therefore not take effect, until they are written back to the editor and persisted.- Parameters:
principal
- Principal for which the editable policies should be returned.- Returns:
- the policies applied so far or an empty array if no policy has been applied before.
- Throws:
AccessControlException
- if the specified principal does not exist, if this implementation cannot provide policies for individual principals or if same other access control related exception occurs.RepositoryException
- if an error occurs
-
editAccessControlPolicies
AccessControlPolicy[] editAccessControlPolicies(String nodePath) throws AccessControlException, PathNotFoundException, RepositoryException
Retrieves the editable policies for the Node identified by the givennodePath
that are applicable but have not yet have been set.
The AccessControlPolicy objects returned are detached from the underlyingAccessControlProvider
and is only an external representation. Modification will therefore not take effect, until a modified policy is written back to the editor and persisted.See
getPolicies(String)
for the corresponding method that returns the editable policies that have been set to the node atnodePath
before.Compared to the policies returned by
AccessControlProvider.getEffectivePolicies(org.apache.jackrabbit.spi.Path, CompiledPermissions)
, the scope of the policies returned by this methods it limited to the Node itself and does never not take inherited elements into account.- Parameters:
nodePath
- Absolute path to an existing node object.- Returns:
- an array of editable access control policies.
- Throws:
AccessControlException
- If the Node identified by the givennodePath
does not allow access control modifications.PathNotFoundException
- if no node exists for the givennodePath
.RepositoryException
- if an error occurs
-
editAccessControlPolicies
JackrabbitAccessControlPolicy[] editAccessControlPolicies(Principal principal) throws AccessDeniedException, AccessControlException, RepositoryException
Returns an array of editable policies for the givenprincipal
.- Parameters:
principal
- Principal for which the editable policies should be returned.- Returns:
- an array of editable policies for the given
principal
. - Throws:
AccessDeniedException
- If the editing session is not allowed to edit policies.AccessControlException
- if the specified principal does not exist, if this implementation cannot provide policies for individual principals or if same other access control related exception occurs.RepositoryException
- if another error occurs.
-
setPolicy
void setPolicy(String nodePath, AccessControlPolicy policy) throws AccessControlException, PathNotFoundException, RepositoryException
Stores the policy template to the respective node.- Parameters:
nodePath
- Absolute path to an existing node object.policy
- theAccessControlPolicy
to store.- Throws:
AccessControlException
- If the policy isnull
or if it is not applicable to the Node identified by the givennodePath
.PathNotFoundException
- if no node exists for the givennodePath
.RepositoryException
- if an other error occurs.
-
removePolicy
void removePolicy(String nodePath, AccessControlPolicy policy) throws AccessControlException, PathNotFoundException, RepositoryException
Removes the specified policy from the node atnodePath
.- Parameters:
nodePath
- Absolute path to an existing node object.policy
- The policy to be removed atnodePath
.- Throws:
AccessControlException
- If the Node identified by the givennodePath
does not allow policy modifications or does not have the specified policy attached.PathNotFoundException
- if no node exists for the givennodePath
.RepositoryException
- if an other error occurs
-
-