Class ADMRemoteStore

java.lang.Object
org.springframework.extensions.webscripts.AbstractWebScript
org.alfresco.repo.web.scripts.bean.BaseRemoteStore
org.alfresco.repo.web.scripts.bean.ADMRemoteStore
All Implemented Interfaces:
org.springframework.extensions.webscripts.WebScript
Direct Known Subclasses:
SurfConfigCleaner

public class ADMRemoteStore extends BaseRemoteStore
ADM Remote Store service.

This implementation of the RemoteStore is tied to the current SiteService implementation.

It remaps incoming generic document path requests to the appropriate folder structure in the Sites folder. Dashboard pages and component bindings are remapped to take advantage of inherited permissions in the appropriate root site folder, ensuring that only valid users can write to the appropriate configuration objects.

Author:
Kevin Roast
See Also:
  • Field Details

    • nodeService

      protected NodeService nodeService
    • unprotNodeService

      protected NodeService unprotNodeService
    • fileFolderService

      protected FileFolderService fileFolderService
    • namespaceService

      protected org.alfresco.service.namespace.NamespaceService namespaceService
    • siteService

      protected SiteService siteService
    • contentService

      protected ContentService contentService
    • hiddenAspect

      protected HiddenAspect hiddenAspect
    • permissionService

      protected PermissionService permissionService
    • ownableService

      protected OwnableService ownableService
  • Constructor Details

    • ADMRemoteStore

      public ADMRemoteStore()
  • Method Details

    • setNodeService

      public void setNodeService(NodeService nodeService)
      Parameters:
      nodeService - the NodeService to set
    • setUnprotectedNodeService

      public void setUnprotectedNodeService(NodeService nodeService)
      Parameters:
      nodeService - the NodeService to set
    • setFileFolderService

      public void setFileFolderService(FileFolderService fileFolderService)
      Parameters:
      fileFolderService - the FileFolderService to set
    • setNamespaceService

      public void setNamespaceService(org.alfresco.service.namespace.NamespaceService namespaceService)
      Parameters:
      namespaceService - the NamespaceService to set
    • setSiteService

      public void setSiteService(SiteService siteService)
      Parameters:
      siteService - the SiteService to set
    • setContentService

      public void setContentService(ContentService contentService)
      Parameters:
      contentService - the ContentService to set
    • setHiddenAspect

      public void setHiddenAspect(HiddenAspect hiddenAspect)
    • setBehaviourFilter

      public void setBehaviourFilter(BehaviourFilter behaviourFilter)
    • setPermissionService

      public void setPermissionService(PermissionService permissionService)
    • setOwnableService

      public void setOwnableService(OwnableService ownableService)
    • lastModified

      protected void lastModified(org.springframework.extensions.webscripts.WebScriptResponse res, String store, String path) throws IOException
      Gets the last modified timestamp for the document.

      The output will be the last modified date as a long toString().

      Specified by:
      lastModified in class BaseRemoteStore
      Parameters:
      path - document path to an existing document
      store - the store id
      Throws:
      IOException
    • getDocument

      protected void getDocument(org.springframework.extensions.webscripts.WebScriptResponse res, String store, String path)
      Gets a document.

      The output will be the document content stream.

      Specified by:
      getDocument in class BaseRemoteStore
      Parameters:
      path - document path
      store - the store id
    • hasDocument

      protected void hasDocument(org.springframework.extensions.webscripts.WebScriptResponse res, String store, String path) throws IOException
      Determines if the document exists. The output will be either the string "true" or the string "false".
      Specified by:
      hasDocument in class BaseRemoteStore
      Parameters:
      path - document path
      store - the store id
      Throws:
      IOException
    • createDocument

      protected void createDocument(org.springframework.extensions.webscripts.WebScriptResponse res, String store, String path, InputStream content)
      Creates a document.

      Create methods are user authenticated, so the creation of site config must be allowed for the current user.

      Specified by:
      createDocument in class BaseRemoteStore
      Parameters:
      path - document path
      content - content of the document to write
      store - the store id
    • createDocuments

      protected void createDocuments(org.springframework.extensions.webscripts.WebScriptResponse res, String store, InputStream in)
      Creates multiple XML documents encapsulated in a single one.
      Specified by:
      createDocuments in class BaseRemoteStore
      Parameters:
      res - WebScriptResponse
      store - String
      in - XML document containing multiple document contents to write
    • writeDocument

      protected void writeDocument(String path, InputStream content)
    • getPathRunAsUser

      protected String getPathRunAsUser(String path)
      Get the RunAs user need to execute a Write operation on the given path.
      Parameters:
      path - Document path
      Returns:
      runas user - will be the Full Authenticated User or System as required
    • updateDocument

      protected void updateDocument(org.springframework.extensions.webscripts.WebScriptResponse res, String store, String path, InputStream content)
      Updates an existing document.

      Update methods are user authenticated, so the modification of site config must be allowed for the current user.

      Specified by:
      updateDocument in class BaseRemoteStore
      Parameters:
      path - document path to update
      content - content to update the document with
      store - the store id
    • deleteDocument

      protected void deleteDocument(org.springframework.extensions.webscripts.WebScriptResponse res, String store, String path)
      Deletes an existing document.

      Delete methods are user authenticated, so the deletion of the document must be allowed for the current user.

      Specified by:
      deleteDocument in class BaseRemoteStore
      Parameters:
      path - document path
      store - the store id
    • listDocuments

      protected void listDocuments(org.springframework.extensions.webscripts.WebScriptResponse res, String store, String path, boolean recurse) throws IOException
      Lists the document paths under a given path.

      The output will be the list of relative document paths found under the path. Separated by newline characters.

      Specified by:
      listDocuments in class BaseRemoteStore
      Parameters:
      path - document path
      recurse - true to peform a recursive list, false for direct children only.
      store - the store id
      Throws:
      IOException - if an error occurs listing the documents
    • listDocuments

      protected void listDocuments(org.springframework.extensions.webscripts.WebScriptResponse res, String store, String path, String pattern) throws IOException
      Lists the document paths matching a file pattern under a given path. The output will be the list of relative document paths found under the path that match the given file pattern. Separated by newline characters.
      Specified by:
      listDocuments in class BaseRemoteStore
      Parameters:
      path - document path
      pattern - file pattern to match - allows wildcards e.g. page.*.site.xml
      store - the store id
      Throws:
      IOException - if an error occurs listing the documents
    • getSurfConfigNodeRef

      protected NodeRef getSurfConfigNodeRef(NodeRef rootRef, boolean create)
      Return the "surf-config" noderef under the given root. Optionally create the folder if it does not exist yet. NOTE: must only be set to create if within a WRITE transaction context.

      Adds the "isIndexed = false" property to the surf-config folder node.

      Parameters:
      rootRef - Root node reference where the "surf-config" folder should live
      create - True to create the folder if missing, false otherwise
      Returns:
      surf-config folder ref if found, null otherwise if not creating
    • getGlobalComponentsNodeRef

      protected NodeRef getGlobalComponentsNodeRef()
      Returns:
      NodeRef to the shared components config folder
    • getGlobalUserFolderNodeRef

      protected NodeRef getGlobalUserFolderNodeRef()
      Returns:
      NodeRef to the shared user config folder
    • buildUserConfigSearchPattern

      protected String buildUserConfigSearchPattern(String userName)
      Generate the search pattern for a Surf config location for a user name.
      Parameters:
      userName - to build pattern for
      Returns:
      the search pattern
    • getFileNodes

      protected org.alfresco.query.PagingResults<FileInfo> getFileNodes(FileInfo fileInfo, String pattern, boolean recurse)