Class PortableHomeFolderManager

java.lang.Object
org.alfresco.repo.security.person.PortableHomeFolderManager
All Implemented Interfaces:
HomeFolderManager

public class PortableHomeFolderManager extends Object implements HomeFolderManager
Manage home folder creation by binding to events from the cm:person type.
Author:
Andy Hind, Alan Davis (support v1 and v2 HomeFolderProviders - code from v1 HomeFolderProviders moved into HomeFolderManager).
  • Constructor Details

    • PortableHomeFolderManager

      public PortableHomeFolderManager()
  • Method Details

    • setNodeService

      public void setNodeService(NodeService nodeService)
      Set the node service.
    • setFileFolderService

      public void setFileFolderService(FileFolderService fileFolderService)
      Set the FileFolderService
    • setNamespaceService

      public void setNamespaceService(NamespaceService namespaceService)
      Set the namespaceService
    • setSearchService

      public void setSearchService(SearchService searchService)
      Parameters:
      searchService - the searchService to set
    • setSingletonCache

      public void setSingletonCache(SimpleCache<String,NodeRef> singletonCache)
    • addProvider

      public void addProvider(HomeFolderProvider provider)
      Register a home folder provider.
      Parameters:
      provider - HomeFolderProvider
    • addProvider

      public void addProvider(HomeFolderProvider2 provider)
      Register a home folder provider.
      Parameters:
      provider - HomeFolderProvider2
    • getHomeFolderProvider1

      public HomeFolderProvider getHomeFolderProvider1(String providerName)
      Returns the version 1 HomeFolderProvider with the given name.
    • getHomeFolderProvider2

      public HomeFolderProvider2 getHomeFolderProvider2(String providerName)
      Returns the version 2 HomeFolderProvider2 with the given name.
    • setDefaultProvider

      public void setDefaultProvider(HomeFolderProvider2 defaultProvider)
      Set the default home folder provider (user which none is specified or when one is not found)
      Parameters:
      defaultProvider - HomeFolderProvider2
    • makeHomeFolder

      public void makeHomeFolder(ChildAssociationRef childAssocRef)
      Description copied from interface: HomeFolderManager
      Create / move the home folder if required.
      Specified by:
      makeHomeFolder in interface HomeFolderManager
      Parameters:
      childAssocRef - the primary child association pointing to the person node.
    • getPersonProperty

      public String getPersonProperty(NodeRef person, QName name)
      Helper method for HomeFolderProvider2.getHomeFolder(org.alfresco.service.cmr.repository.NodeRef) (so that it does not need its own NodeService) that returns a person property value.
    • getHomeFolder

      public HomeSpaceNodeRef getHomeFolder(HomeFolderProvider2 provider, NodeRef person, boolean referenceRootNode)
      Helper method for HomeFolderProvider2.getHomeFolder(NodeRef) implementations to return a HomeSpaceNodeRef
      Parameters:
      referenceRootNode - indicates that a reference to the root node should be returned if the home folder property on the person has not yet been set.
    • modifyHomeFolderNameIfItExists

      public void modifyHomeFolderNameIfItExists(NodeRef root, List<String> homeFolderPath)
      Modifies (if required) the leaf folder name in the homeFolderPath by appending "-N" (where N is an integer starting with 1), so that a new folder will be created.
      Parameters:
      root - folder.
      homeFolderPath - the full path. Only the final element is used.