Class AbstractAclCrudDAOImpl

  • All Implemented Interfaces:
    AclCrudDAO
    Direct Known Subclasses:
    AclCrudDAOImpl

    public abstract class AbstractAclCrudDAOImpl
    extends java.lang.Object
    implements AclCrudDAO
    Abstract implementation for ACL crud DAO.

    This provides basic services such as caching, but defers to the underlying implementation for CRUD operations for: alf_access_control_list alf_acl_member alf_acl_change_set alf_access_control_entry alf_permission alf_authority Also, following are currently unused: alf_ace_context alf_authority_alias

    Since:
    3.4
    Author:
    janv
    • Constructor Detail

      • AbstractAclCrudDAOImpl

        public AbstractAclCrudDAOImpl()
        Default constructor.

        This sets up the DAO accessors to bypass any caching to handle the case where the caches are not supplied in the setters.

    • Method Detail

      • setQnameDAO

        public void setQnameDAO​(QNameDAO qnameDAO)
      • setBatchSize

        public void setBatchSize​(int batchSizeOverride)
      • setAclEntityCache

        public void setAclEntityCache​(TransactionalCache<java.io.Serializable,​java.lang.Object> aclEntityCache)
        Set the cache to use for alf_access_control_list lookups (optional).
        Parameters:
        aclEntityCache - the cache of IDs to AclEntities
      • setAuthorityEntityCache

        public void setAuthorityEntityCache​(org.alfresco.repo.cache.SimpleCache<java.io.Serializable,​java.lang.Object> authorityEntityCache)
        Set the cache to use for alf_authority lookups (optional).
        Parameters:
        authorityEntityCache - the cache of IDs to AclEntities
      • setPermissionEntityCache

        public void setPermissionEntityCache​(org.alfresco.repo.cache.SimpleCache<java.io.Serializable,​java.lang.Object> permissionEntityCache)
        Set the cache to use for alf_permission lookups (optional).
        Parameters:
        permissionEntityCache - the cache of IDs to PermissionEntities
      • getAcl

        public Acl getAcl​(java.lang.Long id)
        Specified by:
        getAcl in interface AclCrudDAO
      • setCheckAclConsistency

        public void setCheckAclConsistency()
        Description copied from interface: AclCrudDAO
        Transaction-scope setting to make the DAO guarantee the validity of all caches: some cache data will be reloaded; some cache data will be considered safe.
        Specified by:
        setCheckAclConsistency in interface AclCrudDAO
      • getAclsThatInheritFromAcl

        public java.util.List<java.lang.Long> getAclsThatInheritFromAcl​(long aclEntityId)
        Specified by:
        getAclsThatInheritFromAcl in interface AclCrudDAO
      • getLatestAclByGuid

        public java.lang.Long getLatestAclByGuid​(java.lang.String aclGuid)
        Specified by:
        getLatestAclByGuid in interface AclCrudDAO
      • getADMNodesByAcl

        public java.util.List<java.lang.Long> getADMNodesByAcl​(long aclEntityId,
                                                               int maxResults)
        Specified by:
        getADMNodesByAcl in interface AclCrudDAO
      • deleteAcl

        public void deleteAcl​(long id)
        Specified by:
        deleteAcl in interface AclCrudDAO
      • getAclEntity

        protected abstract AclEntity getAclEntity​(long id)
      • getAclEntitiesThatInheritFromAcl

        protected abstract java.util.List<java.lang.Long> getAclEntitiesThatInheritFromAcl​(long idOfAcl)
      • getLatestAclEntityByGuid

        protected abstract java.lang.Long getLatestAclEntityByGuid​(java.lang.String aclGuid)
      • updateAclEntity

        protected abstract int updateAclEntity​(AclEntity entity)
      • updateAceEntity

        protected abstract int updateAceEntity​(AceEntity updatedAceEntity)
      • deleteAclEntity

        protected abstract int deleteAclEntity​(long id)
      • getADMNodeEntityIdsByAcl

        protected abstract java.util.List<java.lang.Long> getADMNodeEntityIdsByAcl​(long aclEntityId,
                                                                                   int maxResults)
      • addAclMembersToAcl

        public void addAclMembersToAcl​(long aclId,
                                       java.util.List<java.lang.Long> aceIds,
                                       int depth)
        Specified by:
        addAclMembersToAcl in interface AclCrudDAO
      • addAclMembersToAcl

        public void addAclMembersToAcl​(long aclId,
                                       java.util.List<org.alfresco.util.Pair<java.lang.Long,​java.lang.Integer>> aceIdsWithDepths)
        Specified by:
        addAclMembersToAcl in interface AclCrudDAO
      • deleteAclMembers

        public int deleteAclMembers​(java.util.List<java.lang.Long> aclMemberIds)
        Specified by:
        deleteAclMembers in interface AclCrudDAO
      • getAclMemberEntitiesByAcl

        protected abstract java.util.List<AclMemberEntity> getAclMemberEntitiesByAcl​(long idOfAcl)
      • getAclMemberEntitiesByAuthority

        protected abstract java.util.List<AclMemberEntity> getAclMemberEntitiesByAuthority​(java.lang.String authorityName)
      • updateAclMemberEntity

        protected abstract int updateAclMemberEntity​(AclMemberEntity entity)
      • deleteAclMemberEntities

        protected abstract int deleteAclMemberEntities​(java.util.List<java.lang.Long> aclMemberIds)
      • deleteAclMemberEntitiesByAcl

        protected abstract int deleteAclMemberEntitiesByAcl​(long idOfAcl)
      • getAclMemberEntity

        protected abstract AclMemberEntity getAclMemberEntity​(long aclId,
                                                              long aceId,
                                                              int pos)
      • updateAclChangeSet

        public void updateAclChangeSet​(java.lang.Long aclChangeSetEntityId,
                                       long commitTimeMs)
        Specified by:
        updateAclChangeSet in interface AclCrudDAO
      • deleteAclChangeSet

        public void deleteAclChangeSet​(java.lang.Long changeSetId)
        Specified by:
        deleteAclChangeSet in interface AclCrudDAO
      • createAclChangeSetEntity

        protected abstract java.lang.Long createAclChangeSetEntity()
      • getAclChangeSetEntity

        protected abstract AclChangeSetEntity getAclChangeSetEntity​(java.lang.Long changeSetId)
      • deleteAclChangeSetEntity

        protected abstract int deleteAclChangeSetEntity​(java.lang.Long id)
      • updateChangeSetEntity

        protected abstract int updateChangeSetEntity​(java.lang.Long id,
                                                     long commitTimeMs)
      • getAce

        public Ace getAce​(long aceEntityId)
        Specified by:
        getAce in interface AclCrudDAO
      • getAcesAndAuthoritiesByAcl

        public java.util.List<java.util.Map<java.lang.String,​java.lang.Object>> getAcesAndAuthoritiesByAcl​(long idOfAcl)
        Specified by:
        getAcesAndAuthoritiesByAcl in interface AclCrudDAO
      • deleteAces

        public int deleteAces​(java.util.List<java.lang.Long> aceIds)
        Specified by:
        deleteAces in interface AclCrudDAO
      • createAceEntity

        protected abstract long createAceEntity​(AceEntity entity)
      • getAceEntity

        protected abstract AceEntity getAceEntity​(long aceEntityId)
      • getAceEntity

        protected abstract AceEntity getAceEntity​(long permissionId,
                                                  long authorityId,
                                                  boolean allowed,
                                                  ACEType type)
      • getAceEntitiesByAuthority

        protected abstract java.util.List<Ace> getAceEntitiesByAuthority​(long authorityId)
      • getAceAndAuthorityEntitiesByAcl

        protected abstract java.util.List<java.util.Map<java.lang.String,​java.lang.Object>> getAceAndAuthorityEntitiesByAcl​(long idOfAcl)
      • deleteAceEntities

        protected abstract int deleteAceEntities​(java.util.List<java.lang.Long> aceIds)
      • renamePermission

        public void renamePermission​(org.alfresco.service.namespace.QName oldTypeQName,
                                     java.lang.String oldName,
                                     org.alfresco.service.namespace.QName newTypeQName,
                                     java.lang.String newName)
        Specified by:
        renamePermission in interface AclCrudDAO
      • getPermissionEntity

        protected abstract PermissionEntity getPermissionEntity​(long id)
      • getPermissionEntity

        protected abstract PermissionEntity getPermissionEntity​(long qnameId,
                                                                java.lang.String name)
      • updatePermissionEntity

        protected abstract int updatePermissionEntity​(PermissionEntity updateEntity)
      • deletePermissionEntity

        protected abstract int deletePermissionEntity​(long id)
      • createAuthority

        public Authority createAuthority​(java.lang.String authorityName)
      • renameAuthority

        public void renameAuthority​(java.lang.String before,
                                    java.lang.String after)
        Specified by:
        renameAuthority in interface AclCrudDAO
      • getAuthorityEntity

        protected abstract AuthorityEntity getAuthorityEntity​(long id)
      • getAuthorityEntity

        protected abstract AuthorityEntity getAuthorityEntity​(java.lang.String authorityName)
      • updateAuthorityEntity

        protected abstract int updateAuthorityEntity​(AuthorityEntity updateEntity)
      • deleteAuthorityEntity

        protected abstract int deleteAuthorityEntity​(long id)
      • createAceContextEntity

        protected abstract long createAceContextEntity​(AceContextEntity entity)
      • getAceContextEntity

        protected abstract AceContextEntity getAceContextEntity​(long aceContextId)
      • deleteAceContextEntity

        protected abstract int deleteAceContextEntity​(long aceContextId)
      • createAuthorityAliasEntity

        protected abstract long createAuthorityAliasEntity​(AuthorityAliasEntity entity)
      • deleteAuthorityAliasEntity

        protected abstract int deleteAuthorityAliasEntity​(long id)
      • selectMaxChangeSetCommitTime

        protected abstract java.lang.Long selectMaxChangeSetCommitTime()
        Returns:
        Long
      • getMaxChangeSetIdByCommitTime

        public java.lang.Long getMaxChangeSetIdByCommitTime​(long maxCommitTime)
        Specified by:
        getMaxChangeSetIdByCommitTime in interface AclCrudDAO
        Parameters:
        maxCommitTime - long
        Returns:
        Long
      • selectMaxChangeSetIdBeforeCommitTime

        protected abstract java.lang.Long selectMaxChangeSetIdBeforeCommitTime​(long maxCommitTime)
        Parameters:
        maxCommitTime - long
        Returns:
        Long