/* * Copyright (C) 2003-2009 eXo Platform SAS. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License * as published by the Free Software Foundation; either version 3 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see<http://www.gnu.org/licenses/>. */ package org.exoplatform.services.wcm.publication.lifecycle.stageversion.ui; import java.util.ArrayList; import java.util.List; import javax.jcr.Node; import org.exoplatform.commons.utils.PageList; import org.exoplatform.portal.config.DataStorage; import org.exoplatform.portal.config.Query; import org.exoplatform.portal.config.UserACL; import org.exoplatform.portal.config.model.PortalConfig; import org.exoplatform.portal.webui.util.Util; import org.exoplatform.services.wcm.utils.WCMCoreUtils; import org.exoplatform.webui.config.annotation.ComponentConfig; import org.exoplatform.webui.core.UIContainer; import org.exoplatform.webui.core.UIPopupWindow; import org.exoplatform.webui.core.lifecycle.UIContainerLifecycle; /** * Created by The eXo Platform SAS * Author : eXoPlatform * chuong_phan@exoplatform.com * Mar 19, 2009 */ @SuppressWarnings("deprecation") @ComponentConfig( lifecycle = UIContainerLifecycle.class ) public class UIPublicationPagesContainer extends UIContainer { /** * Inits the. * * @param node the node * * @throws Exception the exception */ public void init(Node node) throws Exception { UIPublicationPages publicationPages = addChild(UIPublicationPages.class, null, null); List<String> runningPortals = getRunningPortals(node.getSession().getUserID()); String portalName = Util.getPortalRequestContext().getPortalOwner(); publicationPages.init(node, portalName, runningPortals); UIPopupWindow popupWindow = null; popupWindow = getChildById("UIClvPopupContainer"); if (popupWindow == null ) popupWindow = addChild(UIPopupWindow.class, null, "UIClvPopupContainer"); } /** * Gets the running portals. * * @param userId the user id * * @return the running portals * * @throws Exception the exception */ private List<String> getRunningPortals(String userId) throws Exception { List<String> listPortalName = new ArrayList<String>(); DataStorage service = WCMCoreUtils.getService(DataStorage.class); Query<PortalConfig> query = new Query<PortalConfig>(null, null, null, null, PortalConfig.class) ; PageList pageList = service.find(query) ; UserACL userACL = WCMCoreUtils.getService(UserACL.class); for(Object object:pageList.getAll()) { PortalConfig portalConfig = (PortalConfig)object; if(userACL.hasPermission(portalConfig)) { listPortalName.add(portalConfig.getName()); } } return listPortalName; } }