@Override public void removePortletId(long userId, String portletId, boolean cleanUp) { try { Portlet portlet = PortletLocalServiceUtil.getPortletById(getCompanyId(), portletId); if (portlet == null) { _log.error("Portlet " + portletId + " cannot be removed because it is not registered"); return; } PermissionChecker permissionChecker = PermissionThreadLocal.getPermissionChecker(); if (!LayoutPermissionUtil.contains(permissionChecker, getLayout(), ActionKeys.UPDATE) && !isCustomizable()) { return; } } catch (Exception e) { _log.error(e, e); return; } List<String> columns = getColumns(); for (int i = 0; i < columns.size(); i++) { String columnId = columns.get(i); if (isCustomizable() && isColumnDisabled(columnId)) { continue; } String columnValue = StringPool.BLANK; if (hasUserPreferences()) { columnValue = getUserPreference(columnId); } else { columnValue = getTypeSettingsProperty(columnId); } columnValue = StringUtil.removeFromList(columnValue, portletId); if (hasUserPreferences()) { setUserPreference(columnId, columnValue); } else { setTypeSettingsProperty(columnId, columnValue); } } if (cleanUp) { try { onRemoveFromLayout(new String[] {portletId}); } catch (Exception e) { _log.error(e, e); } } }
public static void doTag( String portletProviderClassName, PortletProvider.Action portletProviderAction, String instanceId, String queryString, String defaultPreferences, boolean persistSettings, PageContext pageContext, HttpServletRequest request, HttpServletResponse response) throws Exception { String portletId = PortletProviderUtil.getPortletId(portletProviderClassName, portletProviderAction); if (Validator.isNotNull(portletId)) { doTag( portletId, instanceId, queryString, _SETTINGS_SCOPE_DEFAULT, defaultPreferences, persistSettings, pageContext, request, response); } else { ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); Layout layout = themeDisplay.getLayout(); if (!layout.isTypeControlPanel() && !LayoutPermissionUtil.contains( themeDisplay.getPermissionChecker(), layout, ActionKeys.UPDATE)) { return; } String errorMessage = LanguageUtil.format( request, "an-app-that-can-x-x-belongs-here", new Object[] {portletProviderAction.name(), portletProviderClassName}, false); request.setAttribute("liferay-portlet:runtime:errorMessage", errorMessage); PortalIncludeUtil.include(pageContext, _ERROR_PAGE); } }
public void resetCustomizationView(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); if (!LayoutPermissionUtil.contains( themeDisplay.getPermissionChecker(), themeDisplay.getLayout(), ActionKeys.CUSTOMIZE)) { throw new PrincipalException(); } LayoutTypePortlet layoutTypePortlet = themeDisplay.getLayoutTypePortlet(); if ((layoutTypePortlet != null) && layoutTypePortlet.isCustomizable() && layoutTypePortlet.isCustomizedView()) { layoutTypePortlet.resetUserPreferences(); } MultiSessionMessages.add( actionRequest, PortalUtil.getPortletId(actionRequest) + "requestProcessed"); }