Package org.apache.sling.jcr.jackrabbit.accessmanager

# Interface ModifyAce

All Known Implementing Classes:
  `ModifyAceServlet`, `ModifyPrincipalAceServlet`

public interface ModifyAce
The `ModifyAce` service api.

This interface is not intended to be implemented by bundles. It is implemented by this bundle and may be used by client bundles.

## Method Summary

Modifier and Type
Method
Description
`default void`
`modifyAce(javax.jcr.Session jcrSession, String resourcePath, String principalId, Collection<LocalPrivilege> localPrivileges, String order, boolean autoSave)`
Add or modify the access control entry for the specified user or group.
`void`
`modifyAce(javax.jcr.Session jcrSession, String resourcePath, String principalId, Map<String,String> privileges, String order)`
Add or modify the access control entry for the specified user or group.
`default void`
`modifyAce(javax.jcr.Session jcrSession, String resourcePath, String principalId, Map<String,String> privileges, String order, boolean autoSave)`
Add or modify the access control entry for the specified user or group.
`default void`
`modifyAce(javax.jcr.Session jcrSession, String resourcePath, String principalId, Map<String,String> privileges, String order, Map<String,javax.jcr.Value> restrictions, Map<String,javax.jcr.Value[]> mvRestrictions, Set<String> removeRestrictionNames)`
Add or modify the access control entry for the specified user or group.
`default void`
`modifyAce(javax.jcr.Session jcrSession, String resourcePath, String principalId, Map<String,String> privileges, String order, Map<String,javax.jcr.Value> restrictions, Map<String,javax.jcr.Value[]> mvRestrictions, Set<String> removeRestrictionNames, boolean autoSave)`
Add or modify the access control entry for the specified user or group.

## Method Details

### modifyAce

void modifyAce(javax.jcr.Session jcrSession, String resourcePath, String principalId, Map<String,String> privileges, String order) throws javax.jcr.RepositoryException
Add or modify the access control entry for the specified user or group. This is equivalent to `modifyAce(Session, String, String, Map, String, boolean)` with the autoSave parameter value equal to true.

Parameters:
  `jcrSession` - the JCR session of the user updating the user
  `resourcePath` - The absolute path of the resource to apply the ACE to (required)
  `principalId` - The name of the user/group to provision (required)
  `privileges` - Map of privileges to apply. (optional)
  `order` - where the access control entry should go in the list.

  The value should be one of these:
  null | If the ACE for the principal doesn't exist add at the end, otherwise leave the ACE at it's current position.
  first | Place the target ACE as the first amongst its siblings
  last | Place the target ACE as the last amongst its siblings
  before xyz | Place the target ACE immediately before the sibling whose name is xyz
  after xyz | Place the target ACE immediately after the sibling whose name is xyz
  numeric | Place the target ACE at the specified numeric index

Throws:
  `javax.jcr.RepositoryException` - if any errors applying the changes

### modifyAce

default void modifyAce(javax.jcr.Session jcrSession, String resourcePath, String principalId, Map<String,String> privileges, String order, boolean autoSave) throws javax.jcr.RepositoryException
Add or modify the access control entry for the specified user or group.

Parameters:
  `jcrSession` - the JCR session of the user updating the user
  `resourcePath` - The absolute path of the resource to apply the ACE to (required)
  `principalId` - The name of the user/group to provision (required)
  `privileges` - Map of privileges to apply. (optional)
  `order` - where the access control entry should go in the list.

  The value should be one of these:
  null | If the ACE for the principal doesn't exist add at the end, otherwise leave the ACE at it's current position.
  first | Place the target ACE as the first amongst its siblings
  last | Place the target ACE as the last amongst its siblings
  before xyz | Place the target ACE immediately before the sibling whose name is xyz
  after xyz | Place the target ACE immediately after the sibling whose name is xyz
  numeric | Place the target ACE at the specified numeric index

  `autoSave` - true to automatically save changes to the JCR session, false otherwise
Throws:
  `javax.jcr.RepositoryException` - if any errors applying the changes

### modifyAce

default void modifyAce(javax.jcr.Session jcrSession, String resourcePath, String principalId, Map<String,String> privileges, String order, Map<String,javax.jcr.Value> restrictions, Map<String,javax.jcr.Value[]> mvRestrictions, Set<String> removeRestrictionNames) throws javax.jcr.RepositoryException
Add or modify the access control entry for the specified user or group. This is equivalent to `modifyAce(Session, String, String, Map, String, Map, Map, Set, boolean)` with the autoSave parameter value equal to true.

Parameters:
  `jcrSession` - the JCR session of the user updating the user
  `resourcePath` - The absolute path of the resource to apply the ACE to (required)
  `principalId` - The name of the user/group to provision (required)
  `privileges` - Map of privileges to apply. (optional)
  `order` - where the access control entry should go in the list.

  The value should be one of these:
  null | If the ACE for the principal doesn't exist add at the end, otherwise leave the ACE at it's current position.
  first | Place the target ACE as the first amongst its siblings
  last | Place the target ACE as the last amongst its siblings
  before xyz | Place the target ACE immediately before the sibling whose name is xyz
  after xyz | Place the target ACE immediately after the sibling whose name is xyz
  numeric | Place the target ACE at the specified numeric index

  `restrictions` - Map of single-value restrictions to apply. (optional)
  `mvRestrictions` - Map of multi-value restrictions to apply. (optional)
  `removeRestrictionNames` - Set of existing restriction names to remove (optional)
Throws:
  `javax.jcr.RepositoryException` - if any errors applying the changes

### modifyAce

default void modifyAce(javax.jcr.Session jcrSession, String resourcePath, String principalId, Map<String,String> privileges, String order, Map<String,javax.jcr.Value> restrictions, Map<String,javax.jcr.Value[]> mvRestrictions, Set<String> removeRestrictionNames, boolean autoSave) throws javax.jcr.RepositoryException
Add or modify the access control entry for the specified user or group.

Parameters:
  `jcrSession` - the JCR session of the user updating the user
  `resourcePath` - The absolute path of the resource to apply the ACE to (required)
  `principalId` - The name of the user/group to provision (required)
  `privileges` - Map of privileges to apply. (optional)
  `order` - where the access control entry should go in the list.

  The value should be one of these:
  null | If the ACE for the principal doesn't exist add at the end, otherwise leave the ACE at it's current position.
  first | Place the target ACE as the first amongst its siblings
  last | Place the target ACE as the last amongst its siblings
  before xyz | Place the target ACE immediately before the sibling whose name is xyz
  after xyz | Place the target ACE immediately after the sibling whose name is xyz
  numeric | Place the target ACE at the specified numeric index

  `restrictions` - Map of single-value restrictions to apply. (optional)
  `mvRestrictions` - Map of multi-value restrictions to apply. (optional)
  `removeRestrictionNames` - Set of existing restriction names to remove (optional)
  `autoSave` - true to automatically save changes to the JCR session, false otherwise
Throws:
  `javax.jcr.RepositoryException` - if any errors applying the changes

### modifyAce

default void modifyAce(javax.jcr.Session jcrSession, String resourcePath, String principalId, Collection<LocalPrivilege> localPrivileges, String order, boolean autoSave) throws javax.jcr.RepositoryException
Add or modify the access control entry for the specified user or group.

Parameters:
  `jcrSession` - the JCR session of the user updating the user
  `resourcePath` - The absolute path of the resource to apply the ACE to (required)
  `principalId` - The name of the user/group to provision (required)
  `localPrivileges` - collection of privileges to apply.
  `order` - where the access control entry should go in the list.

  The value should be one of these:
  null | If the ACE for the principal doesn't exist add at the end, otherwise leave the ACE at it's current position.
  first | Place the target ACE as the first amongst its siblings
  last | Place the target ACE as the last amongst its siblings
  before xyz | Place the target ACE immediately before the sibling whose name is xyz
  after xyz | Place the target ACE immediately after the sibling whose name is xyz
  numeric | Place the target ACE at the specified numeric index

  `autoSave` - true to automatically save changes to the JCR session, false otherwise
Throws:
  `javax.jcr.RepositoryException` - if any errors applying the changes