1
22
23 package com.liferay.portlet.messageboards.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.PermissionChecker;
29 import com.liferay.portlet.messageboards.model.MBCategory;
30 import com.liferay.portlet.messageboards.model.MBMessage;
31 import com.liferay.portlet.messageboards.service.MBBanLocalServiceUtil;
32 import com.liferay.portlet.messageboards.service.MBMessageLocalServiceUtil;
33
34
40 public class MBMessagePermission {
41
42 public static void check(
43 PermissionChecker permissionChecker, long messageId,
44 String actionId)
45 throws PortalException, SystemException {
46
47 if (!contains(permissionChecker, messageId, actionId)) {
48 throw new PrincipalException();
49 }
50 }
51
52 public static void check(
53 PermissionChecker permissionChecker, MBMessage message,
54 String actionId)
55 throws PortalException, SystemException {
56
57 if (!contains(permissionChecker, message, actionId)) {
58 throw new PrincipalException();
59 }
60 }
61
62 public static boolean contains(
63 PermissionChecker permissionChecker, long messageId,
64 String actionId)
65 throws PortalException, SystemException {
66
67 MBMessage message = MBMessageLocalServiceUtil.getMessage(messageId);
68
69 return contains(permissionChecker, message, actionId);
70 }
71
72 public static boolean contains(
73 PermissionChecker permissionChecker, MBMessage message,
74 String actionId)
75 throws SystemException {
76
77 MBCategory category = message.getCategory();
78
79 long groupId = 0;
80
81 if (category != null) {
82 groupId = category.getGroupId();
83 }
84
85 if (MBBanLocalServiceUtil.hasBan(
86 groupId, permissionChecker.getUserId())) {
87
88 return false;
89 }
90
91 if (permissionChecker.hasOwnerPermission(
92 message.getCompanyId(), MBMessage.class.getName(),
93 message.getMessageId(), message.getUserId(), actionId)) {
94
95 return true;
96 }
97
98 return permissionChecker.hasPermission(
99 groupId, MBMessage.class.getName(), message.getMessageId(),
100 actionId);
101 }
102
103 }