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
032 import java.util.ArrayList;
033 import java.util.List;
034
035
038 public class DLAppUtil {
039
040 public static long[] filterFolderIds(
041 PermissionChecker permissionChecker, long groupId, long[] folderIds)
042 throws PortalException, SystemException {
043
044 List<Long> viewableFolderIds = new ArrayList<Long>(folderIds.length);
045
046 for (long folderId : folderIds) {
047 if (DLFolderPermission.contains(
048 permissionChecker, groupId, folderId, ActionKeys.VIEW)) {
049
050 viewableFolderIds.add(folderId);
051 }
052 }
053
054 return ArrayUtil.toArray(
055 viewableFolderIds.toArray(new Long[viewableFolderIds.size()]));
056 }
057
058 public static String getExtension(String title, String sourceFileName) {
059 String extension = FileUtil.getExtension(sourceFileName);
060
061 if (Validator.isNull(extension)) {
062 extension = FileUtil.getExtension(title);
063 }
064
065 return extension;
066 }
067
068 public static String getMimeType(
069 String sourceFileName, String mimeType, String title, File file) {
070
071 if (Validator.isNull(mimeType) ||
072 mimeType.equals(ContentTypes.APPLICATION_OCTET_STREAM)) {
073
074 String extension = getExtension(title, sourceFileName);
075
076 mimeType = MimeTypesUtil.getContentType(file, "A." + extension);
077 }
078
079 return mimeType;
080 }
081
082 public static boolean isMajorVersion(
083 FileVersion previousFileVersion, FileVersion currentFileVersion) {
084
085 long currentVersion = GetterUtil.getLong(
086 currentFileVersion.getVersion());
087 long previousVersion = GetterUtil.getLong(
088 previousFileVersion.getVersion());
089
090 return (currentVersion - previousVersion) >= 1;
091 }
092
093 }