001
014
015 package com.liferay.portlet.documentlibrary.service.permission;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.repository.model.FileShortcut;
019 import com.liferay.portal.security.auth.PrincipalException;
020 import com.liferay.portal.security.permission.PermissionChecker;
021 import com.liferay.portal.util.PortletKeys;
022 import com.liferay.portlet.documentlibrary.model.DLFileShortcut;
023 import com.liferay.portlet.documentlibrary.model.DLFileShortcutConstants;
024 import com.liferay.portlet.documentlibrary.service.DLFileShortcutLocalServiceUtil;
025 import com.liferay.portlet.exportimport.staging.permission.StagingPermissionUtil;
026
027
030 public class DLFileShortcutPermission {
031
032 public static void check(
033 PermissionChecker permissionChecker, DLFileShortcut dlFileShortcut,
034 String actionId)
035 throws PortalException {
036
037 if (!contains(permissionChecker, dlFileShortcut, actionId)) {
038 throw new PrincipalException();
039 }
040 }
041
042 public static void check(
043 PermissionChecker permissionChecker, FileShortcut fileShortcut,
044 String actionId)
045 throws PortalException {
046
047 if (!contains(permissionChecker, fileShortcut, actionId)) {
048 throw new PrincipalException();
049 }
050 }
051
052 public static void check(
053 PermissionChecker permissionChecker, long fileShortcutId,
054 String actionId)
055 throws PortalException {
056
057 if (!contains(permissionChecker, fileShortcutId, actionId)) {
058 throw new PrincipalException();
059 }
060 }
061
062 public static boolean contains(
063 PermissionChecker permissionChecker, DLFileShortcut dlFileShortcut,
064 String actionId) {
065
066 Boolean hasPermission = StagingPermissionUtil.hasPermission(
067 permissionChecker, dlFileShortcut.getGroupId(),
068 DLFileShortcutConstants.getClassName(),
069 dlFileShortcut.getFileShortcutId(), PortletKeys.DOCUMENT_LIBRARY,
070 actionId);
071
072 if (hasPermission != null) {
073 return hasPermission.booleanValue();
074 }
075
076 if (permissionChecker.hasOwnerPermission(
077 dlFileShortcut.getCompanyId(),
078 DLFileShortcutConstants.getClassName(),
079 dlFileShortcut.getFileShortcutId(), dlFileShortcut.getUserId(),
080 actionId)) {
081
082 return true;
083 }
084
085 return permissionChecker.hasPermission(
086 dlFileShortcut.getGroupId(), DLFileShortcutConstants.getClassName(),
087 dlFileShortcut.getFileShortcutId(), actionId);
088 }
089
090 public static boolean contains(
091 PermissionChecker permissionChecker, FileShortcut fileShortcut,
092 String actionId)
093 throws PortalException {
094
095 return fileShortcut.containsPermission(permissionChecker, actionId);
096 }
097
098 public static boolean contains(
099 PermissionChecker permissionChecker, long fileShortcutId,
100 String actionId)
101 throws PortalException {
102
103 DLFileShortcut dlFileShortcut =
104 DLFileShortcutLocalServiceUtil.getFileShortcut(fileShortcutId);
105
106 return contains(permissionChecker, dlFileShortcut, actionId);
107 }
108
109 }