Search in sources :

Example 6 with Client

use of org.alfresco.util.FileFilterMode.Client in project alfresco-repository by Alfresco.

the class FileFolderServiceImpl method setHidden.

@Override
public void setHidden(NodeRef nodeRef, boolean isHidden) {
    int mask = 0;
    boolean allVisible = true;
    Visibility webDavVisibility = isHidden ? Visibility.NotVisible : Visibility.Visible;
    for (Client client : hiddenAspect.getClients()) {
        Visibility clientVisibility = client == FileFilterMode.getClient() ? webDavVisibility : hiddenAspect.getVisibility(client, nodeRef);
        if (clientVisibility != Visibility.Visible) {
            allVisible = false;
        }
        mask |= hiddenAspect.getClientVisibilityMask(client, clientVisibility);
    }
    if (allVisible) {
        hiddenAspect.showNode(nodeRef, true);
    } else {
        hiddenAspect.hideNode(nodeRef, mask, true, true, false);
    }
}
Also used : Visibility(org.alfresco.repo.model.filefolder.HiddenAspect.Visibility) Client(org.alfresco.util.FileFilterMode.Client)

Example 7 with Client

use of org.alfresco.util.FileFilterMode.Client in project alfresco-repository by Alfresco.

the class HiddenAspectTest method testHiddenFilesBasicClient.

@Test
public void testHiddenFilesBasicClient() {
    if (imapEnabled) {
        FileFilterMode.setClient(Client.imap);
        try {
            // check temporary file
            NodeRef parent = fileFolderService.create(topNodeRef, "New Folder", ContentModel.TYPE_FOLDER).getNodeRef();
            NodeRef child = fileFolderService.create(parent, "file.tmp", ContentModel.TYPE_CONTENT).getNodeRef();
            assertTrue(nodeService.hasAspect(child, ContentModel.ASPECT_TEMPORARY));
            assertFalse(nodeService.hasAspect(child, ContentModel.ASPECT_HIDDEN));
            assertFalse(nodeService.hasAspect(child, ContentModel.ASPECT_INDEX_CONTROL));
            List<FileInfo> children = fileFolderService.list(parent);
            assertEquals(1, children.size());
            // check hidden files - should not be hidden for a basic client
            parent = fileFolderService.create(topNodeRef, ".TemporaryItems", ContentModel.TYPE_FOLDER).getNodeRef();
            child = fileFolderService.create(parent, "inTemporaryItems", ContentModel.TYPE_FOLDER).getNodeRef();
            assertFalse(nodeService.hasAspect(parent, ContentModel.ASPECT_TEMPORARY));
            assertFalse(nodeService.hasAspect(parent, ContentModel.ASPECT_HIDDEN));
            assertFalse(nodeService.hasAspect(parent, ContentModel.ASPECT_INDEX_CONTROL));
            assertFalse(nodeService.hasAspect(child, ContentModel.ASPECT_TEMPORARY));
            assertFalse(nodeService.hasAspect(child, ContentModel.ASPECT_HIDDEN));
            assertFalse(nodeService.hasAspect(child, ContentModel.ASPECT_INDEX_CONTROL));
            children = fileFolderService.list(parent);
            assertEquals(1, children.size());
            parent = fileFolderService.create(topNodeRef, "Folder 2", ContentModel.TYPE_FOLDER).getNodeRef();
            child = fileFolderService.create(parent, "Thumbs.db", ContentModel.TYPE_CONTENT).getNodeRef();
            assertFalse(nodeService.hasAspect(child, ContentModel.ASPECT_TEMPORARY));
            assertFalse(nodeService.hasAspect(child, ContentModel.ASPECT_HIDDEN));
            assertFalse(nodeService.hasAspect(child, ContentModel.ASPECT_INDEX_CONTROL));
            children = fileFolderService.list(parent);
            assertEquals(1, children.size());
            NodeRef node = fileFolderService.create(topNodeRef, "surf-config", ContentModel.TYPE_FOLDER).getNodeRef();
            assertFalse(nodeService.hasAspect(node, ContentModel.ASPECT_HIDDEN));
            assertFalse(nodeService.hasAspect(node, ContentModel.ASPECT_INDEX_CONTROL));
            node = fileFolderService.create(topNodeRef, ".DS_Store", ContentModel.TYPE_CONTENT).getNodeRef();
            assertFalse(nodeService.hasAspect(node, ContentModel.ASPECT_HIDDEN));
            assertFalse(nodeService.hasAspect(node, ContentModel.ASPECT_INDEX_CONTROL));
            for (Client client : hiddenAspect.getClients()) {
                assertEquals("Should be visible for client " + client, Visibility.Visible, hiddenAspect.getVisibility(client, node));
            }
            node = fileFolderService.create(topNodeRef, "._resourceFork", ContentModel.TYPE_FOLDER).getNodeRef();
            assertFalse(nodeService.hasAspect(node, ContentModel.ASPECT_HIDDEN));
            assertFalse(nodeService.hasAspect(node, ContentModel.ASPECT_INDEX_CONTROL));
            children = fileFolderService.list(parent);
            assertEquals(1, children.size());
            String nodeName = "Node" + System.currentTimeMillis();
            node = fileFolderService.create(topNodeRef, nodeName, ContentModel.TYPE_CONTENT).getNodeRef();
            assertFalse(nodeService.hasAspect(node, ContentModel.ASPECT_HIDDEN));
            assertFalse(nodeService.hasAspect(node, ContentModel.ASPECT_INDEX_CONTROL));
            try {
                fileFolderService.rename(node, "." + nodeName);
            } catch (FileExistsException e) {
                fail();
            } catch (FileNotFoundException e) {
                fail();
            }
            assertFalse(nodeService.hasAspect(node, ContentModel.ASPECT_HIDDEN));
            assertFalse(nodeService.hasAspect(node, ContentModel.ASPECT_INDEX_CONTROL));
            try {
                fileFolderService.rename(node, nodeName);
            } catch (FileExistsException e) {
                fail();
            } catch (FileNotFoundException e) {
                fail();
            }
            assertFalse(nodeService.hasAspect(node, ContentModel.ASPECT_HIDDEN));
            assertFalse(nodeService.hasAspect(node, ContentModel.ASPECT_INDEX_CONTROL));
            imapService.getOrCreateMailbox(user, MAILBOX_NAME_A, false, true);
            imapService.renameMailbox(user, MAILBOX_NAME_A, MAILBOX_NAME_B);
            assertFalse("Can't rename mailbox", checkMailbox(user, MAILBOX_NAME_A));
            assertTrue("Can't rename mailbox", checkMailbox(user, MAILBOX_NAME_B));
            assertEquals("Can't rename mailbox", 0, numMailboxes(user, MAILBOX_NAME_A));
            assertEquals("Can't rename mailbox", 1, numMailboxes(user, MAILBOX_NAME_B));
        } finally {
            FileFilterMode.clearClient();
        }
    }
}
Also used : NodeRef(org.alfresco.service.cmr.repository.NodeRef) FileInfo(org.alfresco.service.cmr.model.FileInfo) FileNotFoundException(org.alfresco.service.cmr.model.FileNotFoundException) Client(org.alfresco.util.FileFilterMode.Client) FileExistsException(org.alfresco.service.cmr.model.FileExistsException) Test(org.junit.Test)

Aggregations

Client (org.alfresco.util.FileFilterMode.Client)7 FileInfo (org.alfresco.service.cmr.model.FileInfo)5 NodeRef (org.alfresco.service.cmr.repository.NodeRef)3 PagingRequest (org.alfresco.query.PagingRequest)2 QName (org.alfresco.service.namespace.QName)2 Test (org.junit.Test)2 Serializable (java.io.Serializable)1 Visibility (org.alfresco.repo.model.filefolder.HiddenAspect.Visibility)1 AccessDeniedException (org.alfresco.repo.security.permissions.AccessDeniedException)1 FileExistsException (org.alfresco.service.cmr.model.FileExistsException)1 FileFolderServiceType (org.alfresco.service.cmr.model.FileFolderServiceType)1 FileNotFoundException (org.alfresco.service.cmr.model.FileNotFoundException)1