001
014
015 package com.liferay.portlet.mypages;
016
017 import com.liferay.portal.model.Portlet;
018 import com.liferay.portal.model.RoleConstants;
019 import com.liferay.portal.security.permission.PermissionChecker;
020 import com.liferay.portal.service.RoleLocalServiceUtil;
021 import com.liferay.portal.theme.ThemeDisplay;
022 import com.liferay.portal.util.PropsValues;
023 import com.liferay.portlet.BaseControlPanelEntry;
024
025
029 public class MyPagesControlPanelEntry extends BaseControlPanelEntry {
030
031 public boolean isVisible(
032 PermissionChecker permissionChecker, Portlet portlet)
033 throws Exception {
034
035 return false;
036 }
037
038 @Override
039 public boolean isVisible(
040 Portlet portlet, String category, ThemeDisplay themeDisplay)
041 throws Exception {
042
043 if (!PropsValues.LAYOUT_USER_PRIVATE_LAYOUTS_ENABLED &&
044 !PropsValues.LAYOUT_USER_PUBLIC_LAYOUTS_ENABLED) {
045
046 return false;
047 }
048
049 PermissionChecker permissionChecker =
050 themeDisplay.getPermissionChecker();
051
052 boolean hasPowerUserRole = RoleLocalServiceUtil.hasUserRole(
053 permissionChecker.getUserId(), permissionChecker.getCompanyId(),
054 RoleConstants.POWER_USER, true);
055
056 if ((PropsValues.LAYOUT_USER_PRIVATE_LAYOUTS_POWER_USER_REQUIRED ||
057 PropsValues.LAYOUT_USER_PUBLIC_LAYOUTS_POWER_USER_REQUIRED) &&
058 !hasPowerUserRole) {
059
060 return false;
061 }
062
063 return super.isVisible(portlet, category, themeDisplay);
064 }
065
066 }