Class AbstractPermissionsDaoComponentImpl

  • All Implemented Interfaces:
    PermissionsDaoComponent
    Direct Known Subclasses:
    ADMPermissionsDaoComponentImpl

    public abstract class AbstractPermissionsDaoComponentImpl
    extends java.lang.Object
    implements PermissionsDaoComponent
    Common support for permisisons dao Sub classes determine how ACLs are cascaded to children and how changes may COW/version children as ACLs are pushed down. TODO: remove the protocol to dao mapping
    Author:
    andyh
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected abstract org.alfresco.repo.domain.permissions.AbstractPermissionsDaoComponentImpl.CreationReport createAccessControlList​(org.alfresco.service.cmr.repository.NodeRef nodeRef, boolean inherit, Acl existing)  
      void deletePermission​(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.lang.String authority, PermissionReference permission)
      Deletes all permission entries (access control list entries) that match the given criteria.
      void deletePermission​(org.alfresco.service.cmr.repository.StoreRef storeRef, java.lang.String authority, PermissionReference permission)
      Remove part of a permission mask from a store
      void deletePermissions​(java.lang.String authority)
      Remove all permissions for the specified authority
      void deletePermissions​(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.lang.String authority)
      Delete permission entries for the given node and authority
      void deletePermissions​(org.alfresco.service.cmr.repository.StoreRef storeRef)
      Remove all permission masks from a store
      void deletePermissions​(org.alfresco.service.cmr.repository.StoreRef storeRef, java.lang.String authority)
      Delete entries from a permission mask on a store by authority
      boolean equals​(java.lang.Object obj)
      Checks equality by type and uuid
      java.util.Set<org.alfresco.service.cmr.repository.NodeRef> findNodeByPermission​(java.lang.String authority, PermissionReference permission, boolean allow)  
      protected Acl getAccessControlList​(org.alfresco.service.cmr.repository.NodeRef nodeRef)  
      AccessControlListProperties getAccessControlListProperties​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      Get the properties for the access control list
      protected AccessControlListDAO getACLDAO​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      Helper to choose appropriate NodeService for the given NodeRef
      java.util.Map<org.alfresco.service.cmr.repository.NodeRef,​java.util.Set<org.alfresco.service.cmr.security.AccessPermission>> getAllSetPermissions​(java.lang.String authority)  
      boolean getInheritParentPermissions​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      Return the inheritance behaviour for permissions on a given node.
      protected org.alfresco.repo.domain.permissions.AbstractPermissionsDaoComponentImpl.CreationReport getMutableAccessControlList​(org.alfresco.service.cmr.repository.NodeRef nodeRef)  
      NodePermissionEntry getPermissions​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      Get the permissions that have been set on a given node.
      NodePermissionEntry getPermissions​(org.alfresco.service.cmr.repository.StoreRef storeRef)
      Get permission masks set on a store
      int hashCode()  
      void setAclDAO​(AclDAO aclDaoComponent)
      Set the ACL DAO component
      void setDefaultACLDAO​(AccessControlListDAO defaultACLDAO)
      Set the default DAO
      void setInheritParentPermissions​(org.alfresco.service.cmr.repository.NodeRef nodeRef, boolean inheritParentPermissions)
      Set the inheritance behaviour for permissions on a given node.
      void setPermission​(NodePermissionEntry nodePermissionEntry)
      Create a persisted node permission entry given a template object from which to copy.
      void setPermission​(PermissionEntry permissionEntry)
      Create a persisted permission entry given and other representation of a permission entry.
      void setPermission​(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.lang.String authority, PermissionReference permission, boolean allow)
      Set a permission on a node.
      void setPermission​(org.alfresco.service.cmr.repository.StoreRef storeRef, java.lang.String authority, PermissionReference permission, boolean allow)
      Set part of a permission mask on a store.
      void setProtocolToACLDAO​(java.util.Map<java.lang.String,​AccessControlListDAO> map)
      Set the mapping of protocol to DAO
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • INHERIT_PERMISSIONS_DEFAULT

        protected static final boolean INHERIT_PERMISSIONS_DEFAULT
        See Also:
        Constant Field Values
      • aclDaoComponent

        protected AclDAO aclDaoComponent
    • Method Detail

      • setAclDAO

        public void setAclDAO​(AclDAO aclDaoComponent)
        Set the ACL DAO component
        Parameters:
        aclDaoComponent - AclDAO
      • equals

        public boolean equals​(java.lang.Object obj)
        Checks equality by type and uuid
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
        See Also:
        uuid
      • setProtocolToACLDAO

        public void setProtocolToACLDAO​(java.util.Map<java.lang.String,​AccessControlListDAO> map)
        Set the mapping of protocol to DAO
      • setDefaultACLDAO

        public void setDefaultACLDAO​(AccessControlListDAO defaultACLDAO)
        Set the default DAO
        Parameters:
        defaultACLDAO - AccessControlListDAO
      • getACLDAO

        protected AccessControlListDAO getACLDAO​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
        Helper to choose appropriate NodeService for the given NodeRef
        Parameters:
        nodeRef - The NodeRef to dispatch from.
        Returns:
        The appropriate NodeService.
      • getAccessControlList

        protected Acl getAccessControlList​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      • getMutableAccessControlList

        protected org.alfresco.repo.domain.permissions.AbstractPermissionsDaoComponentImpl.CreationReport getMutableAccessControlList​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      • getAllSetPermissions

        public java.util.Map<org.alfresco.service.cmr.repository.NodeRef,​java.util.Set<org.alfresco.service.cmr.security.AccessPermission>> getAllSetPermissions​(java.lang.String authority)
      • findNodeByPermission

        public java.util.Set<org.alfresco.service.cmr.repository.NodeRef> findNodeByPermission​(java.lang.String authority,
                                                                                               PermissionReference permission,
                                                                                               boolean allow)
      • getInheritParentPermissions

        public boolean getInheritParentPermissions​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
        Description copied from interface: PermissionsDaoComponent
        Return the inheritance behaviour for permissions on a given node.
        Specified by:
        getInheritParentPermissions in interface PermissionsDaoComponent
        Returns:
        inheritParentPermissions
      • deletePermissions

        public void deletePermissions​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                      java.lang.String authority)
        Description copied from interface: PermissionsDaoComponent
        Delete permission entries for the given node and authority
        Specified by:
        deletePermissions in interface PermissionsDaoComponent
        Parameters:
        nodeRef - the node to query against
        authority - the specific authority to query against
      • deletePermission

        public void deletePermission​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                     java.lang.String authority,
                                     PermissionReference permission)
        Deletes all permission entries (access control list entries) that match the given criteria. Note that the access control list for the node is not deleted.
        Specified by:
        deletePermission in interface PermissionsDaoComponent
        Parameters:
        nodeRef - the node with the access control list
        authority - the specific authority to look for
        permission - the permission to look for
      • setPermission

        public void setPermission​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                  java.lang.String authority,
                                  PermissionReference permission,
                                  boolean allow)
        Description copied from interface: PermissionsDaoComponent
        Set a permission on a node. If the node has no permissions set then a default node permission (allowing inheritance) will be created to contain the permission entry.
        Specified by:
        setPermission in interface PermissionsDaoComponent
      • setInheritParentPermissions

        public void setInheritParentPermissions​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                                boolean inheritParentPermissions)
        Description copied from interface: PermissionsDaoComponent
        Set the inheritance behaviour for permissions on a given node.
        Specified by:
        setInheritParentPermissions in interface PermissionsDaoComponent
      • deletePermissions

        public void deletePermissions​(org.alfresco.service.cmr.repository.StoreRef storeRef,
                                      java.lang.String authority)
        Description copied from interface: PermissionsDaoComponent
        Delete entries from a permission mask on a store by authority
        Specified by:
        deletePermissions in interface PermissionsDaoComponent
      • createAccessControlList

        protected abstract org.alfresco.repo.domain.permissions.AbstractPermissionsDaoComponentImpl.CreationReport createAccessControlList​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                                                                                                                           boolean inherit,
                                                                                                                                           Acl existing)