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

# Interface ModifyPrincipalAce

All Known Implementing Classes:
  `ModifyPrincipalAceServlet`

public interface ModifyPrincipalAce
The `ModifyPrincipalAce` 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
`void`
`modifyPrincipalAce(javax.jcr.Session jcrSession, String resourcePath, String principalId, Collection<LocalPrivilege> localPrivileges, boolean autoSave)`
Add or modify the access control entry for the specified user or group.
`void`
`modifyPrincipalAce(javax.jcr.Session jcrSession, String resourcePath, String principalId, Map<String,String> privileges, boolean autoSave)`
Add or modify the access control entry for the specified user or group.
`void`
`modifyPrincipalAce(javax.jcr.Session jcrSession, String resourcePath, String principalId, Map<String,String> privileges, 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

### modifyPrincipalAce

void modifyPrincipalAce(javax.jcr.Session jcrSession, String resourcePath, String principalId, Map<String,String> privileges, 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)
  `autoSave` - true to automatically save changes to the JCR session, false otherwise
Throws:
  `javax.jcr.RepositoryException` - if any errors applying the changes

### modifyPrincipalAce

void modifyPrincipalAce(javax.jcr.Session jcrSession, String resourcePath, String principalId, Map<String,String> privileges, 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)
  `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

### modifyPrincipalAce

void modifyPrincipalAce(javax.jcr.Session jcrSession, String resourcePath, String principalId, Collection<LocalPrivilege> localPrivileges, 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.
  `autoSave` - true to automatically save changes to the JCR session, false otherwise
Throws:
  `javax.jcr.RepositoryException` - if any errors applying the changes