org.alfresco.repo.domain.permissions
Class ADMAccessControlListDAO

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

public class ADMAccessControlListDAO
extends java.lang.Object
implements AccessControlListDAO

DAO layer for the improved ACL implementation. This layer is responsible for setting ACLs and any cascade behaviour required. It also implements the migration from the old implementation to the new.


Constructor Summary
ADMAccessControlListDAO()
           
 
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)
           
 void setFixedAcls(java.lang.Long nodeId, java.lang.Long inheritFrom, java.lang.Long mergeFrom, java.lang.Long sharedAclToReplace, java.util.List changes, boolean set)
          Support to set a shared ACL on a node and all of its children
 java.util.List setInheritanceForChildren(org.alfresco.service.cmr.repository.NodeRef parent, java.lang.Long inheritFrom, java.lang.Long sharedAclToReplace)
          Update inheritance
 void setNodeDAO(NodeDAO nodeDAO)
           
 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 oldParentAclId, java.lang.Long newParentAclId)
          
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ADMAccessControlListDAO

public ADMAccessControlListDAO()
Method Detail

setNodeDAO

public void setNodeDAO(NodeDAO nodeDAO)

setAclDAO

public void setAclDAO(AclDAO aclDaoComponent)

forceCopy

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

getAccessControlList

public Acl getAccessControlList(org.alfresco.service.cmr.repository.NodeRef nodeRef)
Description copied from interface: AccessControlListDAO
Get the ACL from a node.

Specified by:
getAccessControlList in interface AccessControlListDAO
Parameters:
nodeRef - The reference to the node.
Returns:
The ACL.

getAccessControlList

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

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

patchAcls

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

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.

setAccessControlList

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

Specified by:
setAccessControlList in interface AccessControlListDAO
Parameters:
nodeRef - The reference to the node.
acl - The ACL.

setAccessControlList

public void setAccessControlList(org.alfresco.service.cmr.repository.StoreRef storeRef,
                                 Acl acl)
Specified by:
setAccessControlList 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

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

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)
Support to set a shared ACL on a node and all of its children

Specified by:
setFixedAcls in interface AccessControlListDAO
Parameters:
nodeRef - the parent node
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
set - set the shared ACL on the parent ?

updateInheritance

public void updateInheritance(java.lang.Long childNodeId,
                              java.lang.Long oldParentAclId,
                              java.lang.Long newParentAclId)

Specified by:
updateInheritance in interface AccessControlListDAO


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