001
014
015 package com.liferay.portlet.documentlibrary.util;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.exception.SystemException;
019 import com.liferay.portal.kernel.repository.model.FileVersion;
020 import com.liferay.portal.kernel.util.ArrayUtil;
021 import com.liferay.portal.kernel.util.ContentTypes;
022 import com.liferay.portal.kernel.util.FileUtil;
023 import com.liferay.portal.kernel.util.GetterUtil;
024 import com.liferay.portal.kernel.util.MimeTypesUtil;
025 import com.liferay.portal.kernel.util.Validator;
026 import com.liferay.portal.security.permission.ActionKeys;
027 import com.liferay.portal.security.permission.PermissionChecker;
028 import com.liferay.portlet.documentlibrary.service.permission.DLFolderPermission;
029
030 import java.io.File;
031 import java.io.InputStream;
032
033 import java.util.ArrayList;
034 import java.util.List;
035
036
039 public class DLAppUtil {
040
041 public static long[] filterFolderIds(
042 PermissionChecker permissionChecker, long groupId, long[] folderIds)
043 throws PortalException, SystemException {
044
045 List<Long> viewableFolderIds = new ArrayList<Long>(folderIds.length);
046
047 for (long folderId : folderIds) {
048 if (DLFolderPermission.contains(
049 permissionChecker, groupId, folderId, ActionKeys.VIEW)) {
050
051 viewableFolderIds.add(folderId);
052 }
053 }
054
055 return ArrayUtil.toArray(
056 viewableFolderIds.toArray(new Long[viewableFolderIds.size()]));
057 }
058
059 public static String getExtension(String title, String sourceFileName) {
060 String extension = FileUtil.getExtension(sourceFileName);
061
062 if (Validator.isNull(extension)) {
063 extension = FileUtil.getExtension(title);
064 }
065
066 return extension;
067 }
068
069 public static String getMimeType(
070 String sourceFileName, String mimeType, String title, File file,
071 InputStream is) {
072
073 if (Validator.isNull(mimeType) ||
074 !mimeType.equals(ContentTypes.APPLICATION_OCTET_STREAM)) {
075
076 return mimeType;
077 }
078
079 if (Validator.isNull(title)) {
080 title = sourceFileName;
081 }
082
083 String extension = getExtension(title, sourceFileName);
084
085 String titleWithExtension = DLUtil.getTitleWithExtension(
086 title, extension);
087
088 if (file != null) {
089 mimeType = MimeTypesUtil.getContentType(file, titleWithExtension);
090 }
091 else {
092 mimeType = MimeTypesUtil.getContentType(is, titleWithExtension);
093 }
094
095 return mimeType;
096 }
097
098 public static boolean isMajorVersion(
099 FileVersion previousFileVersion, FileVersion currentFileVersion) {
100
101 long currentVersion = GetterUtil.getLong(
102 currentFileVersion.getVersion());
103 long previousVersion = GetterUtil.getLong(
104 previousFileVersion.getVersion());
105
106 return (currentVersion - previousVersion) >= 1;
107 }
108
109 }