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.kernel.security.permission.PermissionChecker;
28 import com.liferay.portal.security.auth.PrincipalException;
29 import com.liferay.portal.service.permission.PortletPermissionUtil;
30 import com.liferay.portal.util.PortletKeys;
31 import com.liferay.portlet.messageboards.model.MBCategory;
32 import com.liferay.portlet.messageboards.model.impl.MBCategoryImpl;
33 import com.liferay.portlet.messageboards.service.MBBanLocalServiceUtil;
34 import com.liferay.portlet.messageboards.service.MBCategoryLocalServiceUtil;
35
36
42 public class MBCategoryPermission {
43
44 public static void check(
45 PermissionChecker permissionChecker, long plid, long categoryId,
46 String actionId)
47 throws PortalException, SystemException {
48
49 if (!contains(permissionChecker, plid, categoryId, actionId)) {
50 throw new PrincipalException();
51 }
52 }
53
54 public static void check(
55 PermissionChecker permissionChecker, long categoryId,
56 String actionId)
57 throws PortalException, SystemException {
58
59 if (!contains(permissionChecker, categoryId, actionId)) {
60 throw new PrincipalException();
61 }
62 }
63
64 public static void check(
65 PermissionChecker permissionChecker, MBCategory category,
66 String actionId)
67 throws PortalException, SystemException {
68
69 if (!contains(permissionChecker, category, actionId)) {
70 throw new PrincipalException();
71 }
72 }
73
74 public static boolean contains(
75 PermissionChecker permissionChecker, long plid, long categoryId,
76 String actionId)
77 throws PortalException, SystemException {
78
79 if (categoryId == MBCategoryImpl.DEFAULT_PARENT_CATEGORY_ID) {
80 return PortletPermissionUtil.contains(
81 permissionChecker, plid, PortletKeys.MESSAGE_BOARDS, actionId);
82 }
83 else {
84 return contains(permissionChecker, categoryId, actionId);
85 }
86 }
87
88 public static boolean contains(
89 PermissionChecker permissionChecker, long categoryId,
90 String actionId)
91 throws PortalException, SystemException {
92
93 MBCategory category =
94 MBCategoryLocalServiceUtil.getCategory(categoryId);
95
96 return contains(permissionChecker, category, actionId);
97 }
98
99 public static boolean contains(
100 PermissionChecker permissionChecker, MBCategory category,
101 String actionId)
102 throws PortalException, SystemException {
103
104 if (MBBanLocalServiceUtil.hasBan(
105 category.getGroupId(), permissionChecker.getUserId())) {
106
107 return false;
108 }
109 else {
110 return permissionChecker.hasPermission(
111 category.getGroupId(), MBCategory.class.getName(),
112 category.getCategoryId(), actionId);
113 }
114 }
115
116 }