org.alfresco.repo.domain.permissions
Class AVMAccessControlListDAO

java.lang.Object
  extended by org.alfresco.repo.domain.permissions.AVMAccessControlListDAO
All Implemented Interfaces:
AccessControlListDAO

public class AVMAccessControlListDAO
extends java.lang.Object
implements AccessControlListDAO

The AVM implementation for getting and setting ACLs.


Nested Class Summary
static class AVMAccessControlListDAO.Counter
          Simple counter
static class AVMAccessControlListDAO.CounterSet
          Counter for each type of ACL change
static class AVMAccessControlListDAO.Indirection
          Support to describe AVM indirections for permission performance improvements when permissions are set.
 
Constructor Summary
AVMAccessControlListDAO()
          Default constructor
 
Method Summary
 void forceCopy(org.alfresco.service.cmr.repository.NodeRef nodeRef)
           
 Acl getAccessControlList(org.alfresco.service.cmr.repository.NodeRef nodeRef)
          Get the ACL from a node.
 Acl getAccessControlList(org.alfresco.service.cmr.repository.StoreRef storeRef)
           
 java.lang.Long getIndirectAcl(org.alfresco.service.cmr.repository.NodeRef nodeRef)
           
 java.lang.Long getInheritedAcl(org.alfresco.service.cmr.repository.NodeRef nodeRef)
           
 java.util.Map patchAcls()
           
 void setAccessControlList(org.alfresco.service.cmr.repository.NodeRef nodeRef, Acl acl)
          Set the ACL on a node.
 void setAccessControlList(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.lang.Long aclId)
          Set the ACL on a node.
 void setAccessControlList(org.alfresco.service.cmr.repository.StoreRef storeRef, Acl acl)
           
 void setAclDAO(AclDAO aclDaoComponent)
          Set the ACL DAO component
 void setAvmNodeDAO(AVMNodeDAO avmNodeDAO)
           
 void setAvmRepository(AVMRepository repository)
          Set the AVM repository
 void setAvmService(AVMService avmService)
          Set the AVM service
 void setFixedAcls(AVMNodeDescriptor descriptor, java.lang.Long inheritFrom, java.lang.Long mergeFrom, java.util.List changes, org.alfresco.repo.domain.permissions.AVMAccessControlListDAO.SetMode mode, boolean set, java.util.Map indirections)
          Support to set a shared ACL on a node and all of its children.
 void setFixedAcls(java.lang.Long nodeId, java.lang.Long inheritFrom, java.lang.Long mergeFrom, java.lang.Long sharedAclToReplace, java.util.List changes, boolean set)
           
 java.util.List setInheritanceForChildren(org.alfresco.service.cmr.repository.NodeRef parent, java.lang.Long inheritFrom, java.lang.Long sharedAclToReplace)
          Update inheritance
 void updateChangedAcls(org.alfresco.service.cmr.repository.NodeRef startingPoint, java.util.List changes)
          Update any associated ACLs
 void updateInheritance(java.lang.Long childNodeId, java.lang.Long oldParentNodeId, java.lang.Long newParentNodeId)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AVMAccessControlListDAO

public AVMAccessControlListDAO()
Default constructor

Method Detail

setAvmRepository

public void setAvmRepository(AVMRepository repository)
Set the AVM repository

Parameters:
repository -

setAvmService

public void setAvmService(AVMService avmService)
Set the AVM service

Parameters:
avmService -

setAclDAO

public void setAclDAO(AclDAO aclDaoComponent)
Set the ACL DAO component

Parameters:
aclDAO -

setAvmNodeDAO

public void setAvmNodeDAO(AVMNodeDAO avmNodeDAO)

getIndirectAcl

public java.lang.Long getIndirectAcl(org.alfresco.service.cmr.repository.NodeRef nodeRef)
Specified by:
getIndirectAcl in interface AccessControlListDAO

getInheritedAcl

public java.lang.Long getInheritedAcl(org.alfresco.service.cmr.repository.NodeRef nodeRef)
Specified by:
getInheritedAcl in interface AccessControlListDAO

getAccessControlList

public Acl getAccessControlList(org.alfresco.service.cmr.repository.NodeRef nodeRef)
Get the ACL from a node.

Specified by:
getAccessControlList in interface AccessControlListDAO
Parameters:
nodeRef - The reference to the node.
Returns:
The ACL.
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException

setAccessControlList

public void setAccessControlList(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                 Acl acl)
Set the ACL on a node.

Specified by:
setAccessControlList in interface AccessControlListDAO
Parameters:
nodeRef - The reference to the node.
acl - The ACL.
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException

setAccessControlList

public void setAccessControlList(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                 java.lang.Long aclId)
Description copied from interface: AccessControlListDAO
Set the ACL on a node.

Specified by:
setAccessControlList in interface AccessControlListDAO
Parameters:
nodeRef - The reference to the node.
aclId - The ID of the ACL entity.

updateChangedAcls

public void updateChangedAcls(org.alfresco.service.cmr.repository.NodeRef startingPoint,
                              java.util.List changes)
Description copied from interface: AccessControlListDAO
Update any associated ACLs

Specified by:
updateChangedAcls in interface AccessControlListDAO

forceCopy

public void forceCopy(org.alfresco.service.cmr.repository.NodeRef nodeRef)
Specified by:
forceCopy in interface AccessControlListDAO

setInheritanceForChildren

public java.util.List setInheritanceForChildren(org.alfresco.service.cmr.repository.NodeRef parent,
                                                java.lang.Long inheritFrom,
                                                java.lang.Long sharedAclToReplace)
Description copied from interface: AccessControlListDAO
Update inheritance

Specified by:
setInheritanceForChildren in interface AccessControlListDAO

setFixedAcls

public void setFixedAcls(AVMNodeDescriptor descriptor,
                         java.lang.Long inheritFrom,
                         java.lang.Long mergeFrom,
                         java.util.List changes,
                         org.alfresco.repo.domain.permissions.AVMAccessControlListDAO.SetMode mode,
                         boolean set,
                         java.util.Map indirections)
Support to set a shared ACL on a node and all of its children.

Parameters:
descriptor - the descriptor
inheritFrom - the parent node's ACL
mergeFrom - the shared ACL, if already known. If null, will be retrieved / created lazily
changes - the list in which to record changes
mode - the mode
set - set the shared ACL on the parent ?
indirections - the indirections

patchAcls

public java.util.Map patchAcls()
Specified by:
patchAcls in interface AccessControlListDAO

getAccessControlList

public Acl getAccessControlList(org.alfresco.service.cmr.repository.StoreRef storeRef)
Specified by:
getAccessControlList in interface AccessControlListDAO

setAccessControlList

public void setAccessControlList(org.alfresco.service.cmr.repository.StoreRef storeRef,
                                 Acl acl)
Specified by:
setAccessControlList in interface AccessControlListDAO

updateInheritance

public void updateInheritance(java.lang.Long childNodeId,
                              java.lang.Long oldParentNodeId,
                              java.lang.Long newParentNodeId)
Specified by:
updateInheritance in interface AccessControlListDAO

setFixedAcls

public void setFixedAcls(java.lang.Long nodeId,
                         java.lang.Long inheritFrom,
                         java.lang.Long mergeFrom,
                         java.lang.Long sharedAclToReplace,
                         java.util.List changes,
                         boolean set)
Specified by:
setFixedAcls in interface AccessControlListDAO


Copyright © 2005 - 2010 Alfresco Software, Inc. All Rights Reserved.