/** * Copyright © 2001 The JA-SIG Collaborative. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Redistributions of any form whatsoever must retain the following * acknowledgment: * "This product includes software developed by the JA-SIG Collaborative * (http://www.jasig.org/)." * * THIS SOFTWARE IS PROVIDED BY THE JA-SIG COLLABORATIVE "AS IS" AND ANY * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE JA-SIG COLLABORATIVE OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * * * formatted with JxBeauty (c) johann.langhofer@nextra.at */ package org.jasig.portal.channels.permissionsmanager; import java.util.HashMap; import org.jasig.portal.ChannelRegistryManager; import org.jasig.portal.IPermissible; import org.jasig.portal.groups.IEntityNameFinder; import org.jasig.portal.services.EntityNameFinderService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; /** * An IPermissible implementation that provides management of uPortal 2.0 * channel subscribtion permissions * * @author Alex Vigdor * @version $Revision: 1.7.2.1 $ */ public class PermissibleSubscribeChannels implements IPermissible { private static final Log log = LogFactory.getLog(PermissibleSubscribeChannels.class); protected HashMap activities = new HashMap(); protected HashMap targets = new HashMap(); /** * put your documentation comment here */ public PermissibleSubscribeChannels () { try { activities.put("SUBSCRIBE", "Subscribe to Channel"); Document chanregistry = ChannelRegistryManager.getChannelRegistry(); NodeList chans = chanregistry.getElementsByTagName("channel"); IEntityNameFinder chanf = EntityNameFinderService.instance().getNameFinder(Class.forName("org.jasig.portal.ChannelDefinition")); for (int i = 0; i < chans.getLength(); i++) { Element chan = (Element)chans.item(i); String chanID = chan.getAttribute("ID"); if (chanID.indexOf("chan") == 0) { chanID = chanID.substring(4); } targets.put("CHAN_ID." + chanID, chanf.getName(chanID)); } } catch (Exception e) { log.error(e, e); } } /** * put your documentation comment here * @return an array of String activity tokens */ public String[] getActivityTokens () { return (String[])activities.keySet().toArray(new String[0]); } /** * put your documentation comment here * @param token * @return the String activity name */ public String getActivityName (String token) { return (String)activities.get(token); } /** * put your documentation comment here * @return an array of String target tokens */ public String[] getTargetTokens () { return (String[])targets.keySet().toArray(new String[0]); } /** * put your documentation comment here * @param token * @return a String target name */ public String getTargetName (String token) { return (String)targets.get(token); } /** * put your documentation comment here * @return the String owner token */ public String getOwnerToken () { return "UP_FRAMEWORK"; } /** * put your documentation comment here * @return the String owner name */ public String getOwnerName () { return "CSDepot Channel Subscription"; } }