Class PortableHomeFolderManager
- java.lang.Object
-
- org.alfresco.repo.security.person.PortableHomeFolderManager
-
- All Implemented Interfaces:
HomeFolderManager
public class PortableHomeFolderManager extends java.lang.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 Summary
Constructors Constructor Description PortableHomeFolderManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddProvider(HomeFolderProvider provider)Register a home folder provider.voidaddProvider(HomeFolderProvider2 provider)Register a home folder provider.HomeSpaceNodeRefgetHomeFolder(HomeFolderProvider2 provider, org.alfresco.service.cmr.repository.NodeRef person, boolean referenceRootNode)Helper method forHomeFolderProvider2.getHomeFolder(NodeRef)implementations to return aHomeSpaceNodeRefHomeFolderProvidergetHomeFolderProvider1(java.lang.String providerName)Returns the version 1 HomeFolderProvider with the given name.HomeFolderProvider2getHomeFolderProvider2(java.lang.String providerName)Returns the version 2 HomeFolderProvider2 with the given name.java.lang.StringgetPersonProperty(org.alfresco.service.cmr.repository.NodeRef person, org.alfresco.service.namespace.QName name)Helper method forHomeFolderProvider2.getHomeFolder(org.alfresco.service.cmr.repository.NodeRef)(so that it does not need its own NodeService) that returns a person property value.voidmakeHomeFolder(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef)Create / move the home folder if required.voidmodifyHomeFolderNameIfItExists(org.alfresco.service.cmr.repository.NodeRef root, java.util.List<java.lang.String> homeFolderPath)Modifies (if required) the leaf folder name in thehomeFolderPathby appending"-N"(where N is an integer starting with 1), so that a new folder will be created.voidsetDefaultProvider(HomeFolderProvider2 defaultProvider)Set the default home folder provider (user which none is specified or when one is not found)voidsetFileFolderService(FileFolderService fileFolderService)Set the FileFolderServicevoidsetNamespaceService(org.alfresco.service.namespace.NamespaceService namespaceService)Set the namespaceServicevoidsetNodeService(org.alfresco.service.cmr.repository.NodeService nodeService)Set the node service.voidsetSearchService(org.alfresco.service.cmr.search.SearchService searchService)voidsetSingletonCache(org.alfresco.repo.cache.SimpleCache<java.lang.String,org.alfresco.service.cmr.repository.NodeRef> singletonCache)
-
-
-
Method Detail
-
setNodeService
public void setNodeService(org.alfresco.service.cmr.repository.NodeService nodeService)
Set the node service.
-
setFileFolderService
public void setFileFolderService(FileFolderService fileFolderService)
Set the FileFolderService
-
setNamespaceService
public void setNamespaceService(org.alfresco.service.namespace.NamespaceService namespaceService)
Set the namespaceService
-
setSearchService
public void setSearchService(org.alfresco.service.cmr.search.SearchService searchService)
- Parameters:
searchService- the searchService to set
-
setSingletonCache
public void setSingletonCache(org.alfresco.repo.cache.SimpleCache<java.lang.String,org.alfresco.service.cmr.repository.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(java.lang.String providerName)
Returns the version 1 HomeFolderProvider with the given name.
-
getHomeFolderProvider2
public HomeFolderProvider2 getHomeFolderProvider2(java.lang.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(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef)
Description copied from interface:HomeFolderManagerCreate / move the home folder if required.- Specified by:
makeHomeFolderin interfaceHomeFolderManager- Parameters:
childAssocRef- the primary child association pointing to the person node.
-
getPersonProperty
public java.lang.String getPersonProperty(org.alfresco.service.cmr.repository.NodeRef person, org.alfresco.service.namespace.QName name)Helper method forHomeFolderProvider2.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, org.alfresco.service.cmr.repository.NodeRef person, boolean referenceRootNode)
Helper method forHomeFolderProvider2.getHomeFolder(NodeRef)implementations to return aHomeSpaceNodeRef- 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(org.alfresco.service.cmr.repository.NodeRef root, java.util.List<java.lang.String> homeFolderPath)Modifies (if required) the leaf folder name in thehomeFolderPathby 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.
-
-