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.staging.permission.StagingPermissionUtil;
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.service.DLFileShortcutLocalServiceUtil;
024
025
028 public class DLFileShortcutPermission {
029
030 public static void check(
031 PermissionChecker permissionChecker, DLFileShortcut dlFileShortcut,
032 String actionId)
033 throws PortalException {
034
035 if (!contains(permissionChecker, dlFileShortcut, actionId)) {
036 throw new PrincipalException();
037 }
038 }
039
040 public static void check(
041 PermissionChecker permissionChecker, long fileShortcutId,
042 String actionId)
043 throws PortalException {
044
045 if (!contains(permissionChecker, fileShortcutId, actionId)) {
046 throw new PrincipalException();
047 }
048 }
049
050 public static boolean contains(
051 PermissionChecker permissionChecker, DLFileShortcut dlFileShortcut,
052 String actionId) {
053
054 Boolean hasPermission = StagingPermissionUtil.hasPermission(
055 permissionChecker, dlFileShortcut.getGroupId(),
056 DLFileShortcut.class.getName(), dlFileShortcut.getFileShortcutId(),
057 PortletKeys.DOCUMENT_LIBRARY, actionId);
058
059 if (hasPermission != null) {
060 return hasPermission.booleanValue();
061 }
062
063 if (permissionChecker.hasOwnerPermission(
064 dlFileShortcut.getCompanyId(), DLFileShortcut.class.getName(),
065 dlFileShortcut.getFileShortcutId(), dlFileShortcut.getUserId(),
066 actionId)) {
067
068 return true;
069 }
070
071 return permissionChecker.hasPermission(
072 dlFileShortcut.getGroupId(), DLFileShortcut.class.getName(),
073 dlFileShortcut.getFileShortcutId(), actionId);
074 }
075
076 public static boolean contains(
077 PermissionChecker permissionChecker, long fileShortcutId,
078 String actionId)
079 throws PortalException {
080
081 DLFileShortcut dlFileShortcut =
082 DLFileShortcutLocalServiceUtil.getFileShortcut(fileShortcutId);
083
084 return contains(permissionChecker, dlFileShortcut, actionId);
085 }
086
087 }