1
22
23 package com.liferay.portlet.imagegallery.service.permission;
24
25 import com.liferay.portal.PortalException;
26 import com.liferay.portal.SystemException;
27 import com.liferay.portal.security.auth.PrincipalException;
28 import com.liferay.portal.security.permission.ActionKeys;
29 import com.liferay.portal.security.permission.PermissionChecker;
30 import com.liferay.portal.util.PropsValues;
31 import com.liferay.portlet.imagegallery.model.IGFolder;
32 import com.liferay.portlet.imagegallery.model.IGImage;
33 import com.liferay.portlet.imagegallery.service.IGImageLocalServiceUtil;
34
35
40 public class IGImagePermission {
41
42 public static void check(
43 PermissionChecker permissionChecker, long imageId, String actionId)
44 throws PortalException, SystemException {
45
46 if (!contains(permissionChecker, imageId, actionId)) {
47 throw new PrincipalException();
48 }
49 }
50
51 public static void check(
52 PermissionChecker permissionChecker, IGImage image, String actionId)
53 throws PortalException, SystemException {
54
55 if (!contains(permissionChecker, image, actionId)) {
56 throw new PrincipalException();
57 }
58 }
59
60 public static boolean contains(
61 PermissionChecker permissionChecker, long imageId, String actionId)
62 throws PortalException, SystemException {
63
64 IGImage image = IGImageLocalServiceUtil.getImage(imageId);
65
66 return contains(permissionChecker, image, actionId);
67 }
68
69 public static boolean contains(
70 PermissionChecker permissionChecker, IGImage image, String actionId)
71 throws PortalException, SystemException {
72
73 IGFolder folder = image.getFolder();
74
75 if (PropsValues.PERMISSIONS_VIEW_DYNAMIC_INHERITANCE) {
76 if (!IGFolderPermission.contains(
77 permissionChecker, folder, ActionKeys.VIEW)) {
78
79 return false;
80 }
81 }
82
83 if (permissionChecker.hasOwnerPermission(
84 image.getCompanyId(), IGImage.class.getName(),
85 image.getImageId(), image.getUserId(), actionId)) {
86
87 return true;
88 }
89
90 return permissionChecker.hasPermission(
91 folder.getGroupId(), IGImage.class.getName(), image.getImageId(),
92 actionId);
93 }
94
95 }