Class 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:
    for the available API methods.
    • Constructor Detail

      • ADMRemoteStore

        public ADMRemoteStore()
    • Method Detail

      • 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)