1
22
23 package com.liferay.portlet.bookmarks.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.bookmarks.model.BookmarksEntry;
32 import com.liferay.portlet.bookmarks.model.BookmarksFolder;
33 import com.liferay.portlet.bookmarks.service.BookmarksEntryLocalServiceUtil;
34
35
40 public class BookmarksEntryPermission {
41
42 public static void check(
43 PermissionChecker permissionChecker, long entryId,
44 String actionId)
45 throws PortalException, SystemException {
46
47 if (!contains(permissionChecker, entryId, actionId)) {
48 throw new PrincipalException();
49 }
50 }
51
52 public static void check(
53 PermissionChecker permissionChecker, BookmarksEntry entry,
54 String actionId)
55 throws PortalException, SystemException {
56
57 if (!contains(permissionChecker, entry, actionId)) {
58 throw new PrincipalException();
59 }
60 }
61
62 public static boolean contains(
63 PermissionChecker permissionChecker, long entryId,
64 String actionId)
65 throws PortalException, SystemException {
66
67 BookmarksEntry entry = BookmarksEntryLocalServiceUtil.getEntry(entryId);
68
69 return contains(permissionChecker, entry, actionId);
70 }
71
72 public static boolean contains(
73 PermissionChecker permissionChecker, BookmarksEntry entry,
74 String actionId)
75 throws PortalException, SystemException {
76
77 BookmarksFolder folder = entry.getFolder();
78
79 if (PropsValues.PERMISSIONS_VIEW_DYNAMIC_INHERITANCE) {
80 if (!BookmarksFolderPermission.contains(
81 permissionChecker, folder, ActionKeys.VIEW)) {
82
83 return false;
84 }
85 }
86
87 if (permissionChecker.hasOwnerPermission(
88 entry.getCompanyId(), BookmarksEntry.class.getName(),
89 entry.getEntryId(), entry.getUserId(), actionId)) {
90
91 return true;
92 }
93
94 return permissionChecker.hasPermission(
95 entry.getGroupId(), BookmarksEntry.class.getName(),
96 entry.getEntryId(), actionId);
97 }
98
99 }