1
14
15 package com.liferay.portlet.journal.service.permission;
16
17 import com.liferay.portal.kernel.exception.PortalException;
18 import com.liferay.portal.kernel.exception.SystemException;
19 import com.liferay.portal.security.auth.PrincipalException;
20 import com.liferay.portal.security.permission.PermissionChecker;
21 import com.liferay.portlet.journal.model.JournalArticle;
22 import com.liferay.portlet.journal.service.JournalArticleLocalServiceUtil;
23
24
30 public class JournalArticlePermission {
31
32 public static void check(
33 PermissionChecker permissionChecker, JournalArticle article,
34 String actionId)
35 throws PortalException {
36
37 if (!contains(permissionChecker, article, actionId)) {
38 throw new PrincipalException();
39 }
40 }
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 groupId, String articleId,
54 double version, String actionId)
55 throws PortalException, SystemException {
56
57 if (!contains(
58 permissionChecker, groupId, articleId, version, actionId)) {
59
60 throw new PrincipalException();
61 }
62 }
63
64 public static void check(
65 PermissionChecker permissionChecker, long groupId, String articleId,
66 String actionId)
67 throws PortalException, SystemException {
68
69 if (!contains(permissionChecker, groupId, articleId, actionId)) {
70 throw new PrincipalException();
71 }
72 }
73
74 public static boolean contains(
75 PermissionChecker permissionChecker, JournalArticle article,
76 String actionId) {
77
78 if (permissionChecker.hasOwnerPermission(
79 article.getCompanyId(), JournalArticle.class.getName(),
80 article.getResourcePrimKey(), article.getUserId(), actionId)) {
81
82 return true;
83 }
84
85 return permissionChecker.hasPermission(
86 article.getGroupId(), JournalArticle.class.getName(),
87 article.getResourcePrimKey(), actionId);
88 }
89
90 public static boolean contains(
91 PermissionChecker permissionChecker, long resourcePrimKey,
92 String actionId)
93 throws PortalException, SystemException {
94
95 JournalArticle article =
96 JournalArticleLocalServiceUtil.getLatestArticle(resourcePrimKey);
97
98 return contains(permissionChecker, article, actionId);
99 }
100
101 public static boolean contains(
102 PermissionChecker permissionChecker, long groupId, String articleId,
103 double version, String actionId)
104 throws PortalException, SystemException {
105
106 JournalArticle article = JournalArticleLocalServiceUtil.getArticle(
107 groupId, articleId, version);
108
109 return contains(permissionChecker, article, actionId);
110 }
111
112 public static boolean contains(
113 PermissionChecker permissionChecker, long groupId, String articleId,
114 String actionId)
115 throws PortalException, SystemException {
116
117 JournalArticle article = JournalArticleLocalServiceUtil.getArticle(
118 groupId, articleId);
119
120 return contains(permissionChecker, article, actionId);
121 }
122
123 }