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 @Override
032 public boolean isVisible(
033 PermissionChecker permissionChecker, Portlet portlet)
034 throws Exception {
035
036 return false;
037 }
038
039 @Override
040 public boolean isVisible(
041 Portlet portlet, String category, ThemeDisplay themeDisplay)
042 throws Exception {
043
044 if (!PropsValues.LAYOUT_USER_PRIVATE_LAYOUTS_ENABLED &&
045 !PropsValues.LAYOUT_USER_PUBLIC_LAYOUTS_ENABLED) {
046
047 return false;
048 }
049
050 PermissionChecker permissionChecker =
051 themeDisplay.getPermissionChecker();
052
053 boolean hasPowerUserRole = RoleLocalServiceUtil.hasUserRole(
054 permissionChecker.getUserId(), permissionChecker.getCompanyId(),
055 RoleConstants.POWER_USER, true);
056
057 if ((PropsValues.LAYOUT_USER_PRIVATE_LAYOUTS_POWER_USER_REQUIRED ||
058 PropsValues.LAYOUT_USER_PUBLIC_LAYOUTS_POWER_USER_REQUIRED) &&
059 !hasPowerUserRole) {
060
061 return false;
062 }
063
064 return super.isVisible(portlet, category, themeDisplay);
065 }
066
067 }