protected FileEntry getFileEntry(String[] pathArray) throws Exception { if (pathArray.length == 1) { long dlFileShortcutId = GetterUtil.getLong(pathArray[0]); DLFileShortcut dlFileShortcut = DLAppServiceUtil.getFileShortcut(dlFileShortcutId); return DLAppServiceUtil.getFileEntry(dlFileShortcut.getToFileEntryId()); } else if (pathArray.length == 2) { long groupId = GetterUtil.getLong(pathArray[0]); return DLAppServiceUtil.getFileEntryByUuidAndGroupId(pathArray[1], groupId); } else if (pathArray.length == 3) { long groupId = GetterUtil.getLong(pathArray[0]); long folderId = GetterUtil.getLong(pathArray[1]); String fileName = pathArray[2]; if (fileName.contains(StringPool.QUESTION)) { fileName = fileName.substring(0, fileName.indexOf(StringPool.QUESTION)); } return DLAppServiceUtil.getFileEntry(groupId, folderId, fileName); } else { long groupId = GetterUtil.getLong(pathArray[0]); String uuid = pathArray[3]; return DLAppServiceUtil.getFileEntryByUuidAndGroupId(uuid, groupId); } }
protected void trashFileEntry() throws Exception { Group group = ServiceTestUtil.addGroup(); ServiceContext serviceContext = ServiceTestUtil.getServiceContext(); serviceContext.setScopeGroupId(group.getGroupId()); BaseModel<?> parentBaseModel = getParentBaseModel(group, serviceContext); int initialBaseModelsCount = getBaseModelsNotInTrashCount(parentBaseModel); int initialTrashEntriesCount = getTrashEntriesCount(group.getGroupId()); BaseModel<?> baseModel = addBaseModel(parentBaseModel, true, serviceContext); DLFileShortcut dlFileShortcut = (DLFileShortcut) baseModel; FileEntry fileEntry = DLAppServiceUtil.getFileEntry(dlFileShortcut.getToFileEntryId()); Assert.assertEquals(initialBaseModelsCount + 1, getBaseModelsNotInTrashCount(parentBaseModel)); Assert.assertEquals(initialTrashEntriesCount, getTrashEntriesCount(group.getGroupId())); DLAppServiceUtil.moveFileEntryToTrash(fileEntry.getFileEntryId()); Assert.assertEquals(initialBaseModelsCount, getBaseModelsNotInTrashCount(parentBaseModel)); Assert.assertEquals(initialTrashEntriesCount + 1, getTrashEntriesCount(group.getGroupId())); DLAppServiceUtil.restoreFileEntryFromTrash(fileEntry.getFileEntryId()); Assert.assertEquals(initialBaseModelsCount + 1, getBaseModelsNotInTrashCount(parentBaseModel)); }
private static void _checkFileEntry(String[] pathArray) throws Exception { if (pathArray.length == 1) { long dlFileShortcutId = GetterUtil.getLong(pathArray[0]); DLFileShortcut dlFileShortcut = DLAppLocalServiceUtil.getFileShortcut(dlFileShortcutId); DLAppLocalServiceUtil.getFileEntry(dlFileShortcut.getToFileEntryId()); } else if (pathArray.length == 2) { // Unable to check with UUID because of multiple repositories } else if (pathArray.length == 3) { long groupId = GetterUtil.getLong(pathArray[0]); long folderId = GetterUtil.getLong(pathArray[1]); String fileName = pathArray[2]; try { DLAppLocalServiceUtil.getFileEntry(groupId, folderId, fileName); } catch (RepositoryException re) { } } else { long groupId = GetterUtil.getLong(pathArray[0]); String uuid = pathArray[3]; try { DLAppLocalServiceUtil.getFileEntryByUuidAndGroupId(uuid, groupId); } catch (RepositoryException re) { } } }
@Override public void moveEntry(long classPK, long containerModelId, ServiceContext serviceContext) throws PortalException, SystemException { DLFileShortcut dlFileShortcut = getDLFileShortcut(classPK); DLAppServiceUtil.updateFileShortcut( classPK, containerModelId, dlFileShortcut.getToFileEntryId(), serviceContext); }
@Override protected Repository getRepository(long classPK) throws PortalException, SystemException { DLFileShortcut dlFileShortcut = getDLFileShortcut(classPK); Repository repository = RepositoryServiceUtil.getRepositoryImpl(0, dlFileShortcut.getToFileEntryId(), 0); if (!(repository instanceof LiferayRepository)) { throw new InvalidRepositoryException( "Repository " + repository.getRepositoryId() + " does not support trash operations"); } return repository; }
public static void addPortletBreadcrumbEntries( DLFileShortcut dlFileShortcut, HttpServletRequest request, RenderResponse renderResponse) throws Exception { Folder folder = dlFileShortcut.getFolder(); if (folder.getFolderId() != DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) { addPortletBreadcrumbEntries(folder, request, renderResponse); } PortletURL portletURL = renderResponse.createRenderURL(); portletURL.setParameter("struts_action", "/document_library/view_file_entry"); portletURL.setParameter("fileEntryId", String.valueOf(dlFileShortcut.getToFileEntryId())); PortalUtil.addPortletBreadcrumbEntry( request, dlFileShortcut.getToTitle(), portletURL.toString()); }
protected void moveFileShortcut(ActionRequest actionRequest, boolean moveFromTrash) throws Exception { long fileShortcutId = ParamUtil.getLong(actionRequest, "fileShortcutId"); long newFolderId = ParamUtil.getLong(actionRequest, "newFolderId"); DLFileShortcut fileShortcut = DLAppServiceUtil.getFileShortcut(fileShortcutId); ServiceContext serviceContext = ServiceContextFactory.getInstance(DLFileShortcut.class.getName(), actionRequest); if (moveFromTrash) { DLAppServiceUtil.moveFileShortcutFromTrash(fileShortcutId, newFolderId, serviceContext); } else { DLAppServiceUtil.updateFileShortcut( fileShortcutId, newFolderId, fileShortcut.getToFileEntryId(), serviceContext); } }
@Test public void testUpdateExisting() throws Exception { long pk = RandomTestUtil.nextLong(); DLFileShortcut newDLFileShortcut = _persistence.create(pk); newDLFileShortcut.setUuid(RandomTestUtil.randomString()); newDLFileShortcut.setGroupId(RandomTestUtil.nextLong()); newDLFileShortcut.setCompanyId(RandomTestUtil.nextLong()); newDLFileShortcut.setUserId(RandomTestUtil.nextLong()); newDLFileShortcut.setUserName(RandomTestUtil.randomString()); newDLFileShortcut.setCreateDate(RandomTestUtil.nextDate()); newDLFileShortcut.setModifiedDate(RandomTestUtil.nextDate()); newDLFileShortcut.setRepositoryId(RandomTestUtil.nextLong()); newDLFileShortcut.setFolderId(RandomTestUtil.nextLong()); newDLFileShortcut.setToFileEntryId(RandomTestUtil.nextLong()); newDLFileShortcut.setTreePath(RandomTestUtil.randomString()); newDLFileShortcut.setActive(RandomTestUtil.randomBoolean()); newDLFileShortcut.setStatus(RandomTestUtil.nextInt()); newDLFileShortcut.setStatusByUserId(RandomTestUtil.nextLong()); newDLFileShortcut.setStatusByUserName(RandomTestUtil.randomString()); newDLFileShortcut.setStatusDate(RandomTestUtil.nextDate()); _dlFileShortcuts.add(_persistence.update(newDLFileShortcut)); DLFileShortcut existingDLFileShortcut = _persistence.findByPrimaryKey(newDLFileShortcut.getPrimaryKey()); Assert.assertEquals(existingDLFileShortcut.getUuid(), newDLFileShortcut.getUuid()); Assert.assertEquals( existingDLFileShortcut.getFileShortcutId(), newDLFileShortcut.getFileShortcutId()); Assert.assertEquals(existingDLFileShortcut.getGroupId(), newDLFileShortcut.getGroupId()); Assert.assertEquals(existingDLFileShortcut.getCompanyId(), newDLFileShortcut.getCompanyId()); Assert.assertEquals(existingDLFileShortcut.getUserId(), newDLFileShortcut.getUserId()); Assert.assertEquals(existingDLFileShortcut.getUserName(), newDLFileShortcut.getUserName()); Assert.assertEquals( Time.getShortTimestamp(existingDLFileShortcut.getCreateDate()), Time.getShortTimestamp(newDLFileShortcut.getCreateDate())); Assert.assertEquals( Time.getShortTimestamp(existingDLFileShortcut.getModifiedDate()), Time.getShortTimestamp(newDLFileShortcut.getModifiedDate())); Assert.assertEquals( existingDLFileShortcut.getRepositoryId(), newDLFileShortcut.getRepositoryId()); Assert.assertEquals(existingDLFileShortcut.getFolderId(), newDLFileShortcut.getFolderId()); Assert.assertEquals( existingDLFileShortcut.getToFileEntryId(), newDLFileShortcut.getToFileEntryId()); Assert.assertEquals(existingDLFileShortcut.getTreePath(), newDLFileShortcut.getTreePath()); Assert.assertEquals(existingDLFileShortcut.getActive(), newDLFileShortcut.getActive()); Assert.assertEquals(existingDLFileShortcut.getStatus(), newDLFileShortcut.getStatus()); Assert.assertEquals( existingDLFileShortcut.getStatusByUserId(), newDLFileShortcut.getStatusByUserId()); Assert.assertEquals( existingDLFileShortcut.getStatusByUserName(), newDLFileShortcut.getStatusByUserName()); Assert.assertEquals( Time.getShortTimestamp(existingDLFileShortcut.getStatusDate()), Time.getShortTimestamp(newDLFileShortcut.getStatusDate())); }
protected void getFile( long fileEntryId, long folderId, String name, String title, String version, long fileShortcutId, String uuid, long groupId, String targetExtension, HttpServletRequest request, HttpServletResponse response) throws Exception { if (name.startsWith("DLFE-")) { name = name.substring(5); } name = FileUtil.stripExtension(name); FileEntry fileEntry = null; if (Validator.isNotNull(uuid) && (groupId > 0)) { fileEntry = DLAppServiceUtil.getFileEntryByUuidAndGroupId(uuid, groupId); folderId = fileEntry.getFolderId(); } if (fileEntryId > 0) { fileEntry = DLAppServiceUtil.getFileEntry(fileEntryId); } else if (fileShortcutId <= 0) { if (Validator.isNotNull(title)) { fileEntry = DLAppServiceUtil.getFileEntry(groupId, folderId, title); } else if (Validator.isNotNull(name)) { DLFileEntry dlFileEntry = DLFileEntryLocalServiceUtil.fetchFileEntryByName(groupId, folderId, name); if (dlFileEntry == null) { // LPS-30374 List<DLFileEntry> dlFileEntries = DLFileEntryLocalServiceUtil.getFileEntries(folderId, name); if (!dlFileEntries.isEmpty()) { dlFileEntry = dlFileEntries.get(0); } } if (dlFileEntry != null) { ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); PermissionChecker permissionChecker = themeDisplay.getPermissionChecker(); DLFileEntryPermission.check(permissionChecker, dlFileEntry, ActionKeys.VIEW); fileEntry = new LiferayFileEntry(dlFileEntry); } } } else { DLFileShortcut fileShortcut = DLAppServiceUtil.getFileShortcut(fileShortcutId); fileEntryId = fileShortcut.getToFileEntryId(); fileEntry = DLAppServiceUtil.getFileEntry(fileEntryId); } if (Validator.isNull(version)) { if ((fileEntry != null) && Validator.isNotNull(fileEntry.getVersion())) { version = fileEntry.getVersion(); } else { throw new NoSuchFileEntryException(); } } FileVersion fileVersion = fileEntry.getFileVersion(version); InputStream is = fileVersion.getContentStream(true); String fileName = fileVersion.getTitle(); long contentLength = fileVersion.getSize(); String contentType = fileVersion.getMimeType(); if (Validator.isNotNull(targetExtension)) { String id = DLUtil.getTempFileId(fileEntry.getFileEntryId(), version); String sourceExtension = fileVersion.getExtension(); if (!fileName.endsWith(StringPool.PERIOD + sourceExtension)) { fileName += StringPool.PERIOD + sourceExtension; } File convertedFile = DocumentConversionUtil.convert(id, is, sourceExtension, targetExtension); if (convertedFile != null) { fileName = FileUtil.stripExtension(fileName).concat(StringPool.PERIOD).concat(targetExtension); is = new FileInputStream(convertedFile); contentLength = convertedFile.length(); contentType = MimeTypesUtil.getContentType(fileName); } } ServletResponseUtil.sendFile(request, response, fileName, is, contentLength, contentType); }