1
22
23 package com.liferay.portlet.wiki.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.portlet.wiki.NoSuchPageException;
31 import com.liferay.portlet.wiki.model.WikiPage;
32 import com.liferay.portlet.wiki.service.WikiPageLocalServiceUtil;
33
34
40 public class WikiPagePermission {
41
42 public static void check(
43 PermissionChecker permissionChecker, long resourcePrimKey,
44 String actionId)
45 throws PortalException, SystemException {
46
47 if (!contains(permissionChecker, resourcePrimKey, actionId)) {
48 throw new PrincipalException();
49 }
50 }
51
52 public static void check(
53 PermissionChecker permissionChecker, long nodeId, String title,
54 String actionId)
55 throws PortalException, SystemException {
56
57 if (!contains(permissionChecker, nodeId, title, actionId)) {
58 throw new PrincipalException();
59 }
60 }
61
62 public static void check(
63 PermissionChecker permissionChecker, WikiPage page, String actionId)
64 throws PortalException {
65
66 if (!contains(permissionChecker, page, actionId)) {
67 throw new PrincipalException();
68 }
69 }
70
71 public static boolean contains(
72 PermissionChecker permissionChecker, long resourcePrimKey,
73 String actionId)
74 throws PortalException, SystemException {
75
76 WikiPage page = WikiPageLocalServiceUtil.getPage(resourcePrimKey);
77
78 return contains(permissionChecker, page, actionId);
79 }
80
81 public static boolean contains(
82 PermissionChecker permissionChecker, long nodeId, String title,
83 String actionId)
84 throws PortalException, SystemException {
85
86 try {
87 WikiPage page = WikiPageLocalServiceUtil.getPage(nodeId, title);
88
89 return contains(permissionChecker, page, actionId);
90 }
91 catch (NoSuchPageException nspe) {
92 return WikiNodePermission.contains(
93 permissionChecker, nodeId, ActionKeys.ADD_PAGE);
94 }
95 }
96
97 public static boolean contains(
98 PermissionChecker permissionChecker, WikiPage page, String actionId) {
99
100 if (permissionChecker.hasOwnerPermission(
101 page.getCompanyId(), WikiPage.class.getName(), page.getPageId(),
102 page.getUserId(), actionId)) {
103
104 return true;
105 }
106
107 return permissionChecker.hasPermission(
108 page.getGroupId(), WikiPage.class.getName(),
109 page.getResourcePrimKey(), actionId);
110 }
111
112 }