1
22
23 package com.liferay.portlet;
24
25 import com.liferay.portal.model.Group;
26 import com.liferay.portal.model.LayoutConstants;
27 import com.liferay.portal.model.Portlet;
28 import com.liferay.portal.security.permission.ActionKeys;
29 import com.liferay.portal.security.permission.PermissionChecker;
30 import com.liferay.portal.service.permission.PortletPermissionUtil;
31 import com.liferay.portal.theme.ThemeDisplay;
32 import com.liferay.portal.util.PortletCategoryKeys;
33
34
39 public abstract class BaseControlPanelEntry implements ControlPanelEntry {
40
41 public boolean isVisible(
42 Portlet portlet, String category, ThemeDisplay themeDisplay)
43 throws Exception {
44
45 PermissionChecker permissionChecker =
46 themeDisplay.getPermissionChecker();
47
48 if (permissionChecker.isCompanyAdmin()) {
49 return true;
50 }
51
52 Group group = themeDisplay.getScopeGroup();
53
54 long plid = LayoutConstants.DEFAULT_PLID;
55
56 if (category.equals(PortletCategoryKeys.CONTENT)) {
57 plid = group.getDefaultPublicPlid();
58
59 if (plid == LayoutConstants.DEFAULT_PLID) {
60 plid = group.getDefaultPrivatePlid();
61 }
62 }
63
64 if (category.equals(PortletCategoryKeys.CONTENT) &&
65 permissionChecker.isCommunityAdmin(group.getGroupId())) {
66
67 return true;
68 }
69
70 if (PortletPermissionUtil.contains(
71 permissionChecker, plid, portlet.getPortletId(),
72 ActionKeys.ACCESS_IN_CONTROL_PANEL, true)) {
73
74 return true;
75 }
76
77 return isVisible(themeDisplay.getPermissionChecker(), portlet);
78 }
79
80 }