All Downloads are FREE. Search and download functionalities are using the official Maven repository.

pl.bristleback.server.bristle.rights.ConnectorRightsUtil Maven / Gradle / Ivy

// Bristleback plugin - Copyright (c) 2010 bristleback.googlecode.com
// ---------------------------------------------------------------------------
// This program is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License as published by the
// Free Software Foundation; either version 3 of the License, or (at your
// option) any later version.
// This library 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.
// You should have received a copy of the GNU Lesser General Public License along
// with this program; if not, see .
// ---------------------------------------------------------------------------
package pl.bristleback.server.bristle.rights;

import org.apache.log4j.Logger;
import org.jwebsocket.api.WebSocketConnector;
import pl.bristleback.server.bristle.config.BristleConstants;

import java.util.Arrays;
import java.util.Collection;

/**
 * This util provides convenient methods for adding, removing and setting rights or rights sets.
 * 

* Created on: 2010-09-27 11:46:00
* * @author Wojciech Niemiec */ public final class ConnectorRightsUtil { private static Logger log = Logger.getLogger(ConnectorRightsUtil.class.getName()); private ConnectorRightsUtil() { throw new UnsupportedOperationException(); } /** * Awards right given as parameter to given connector. If connector actually posses that right, * this method leaves rights set unchanged. * * @param connector websocket connector. * @param right right. */ public static void addRight(WebSocketConnector connector, String right) { ConnectorRightsSet rightsSet = getConnectorRightsSet(connector); rightsSet.addRight(right); } /** * Removes given right from connector. If connector doesn't have that right, no operation is performed. * * @param connector websocket connector. * @param right right. */ public static void removeRight(WebSocketConnector connector, String right) { ConnectorRightsSet rightsSet = getConnectorRightsSet(connector); rightsSet.removeRight(right); } /** * Creates new empty rights set for connector. If connector actually have rights set, * old set is dropped and new one replaces it. * todo-wojtek consider if this is effect we want to achieve. * * @param connector websocket connector */ public static void createRightsSetForConnector(WebSocketConnector connector) { ConnectorRightsSet rightsSet = new ConnectorRightsSet(); connector.setVar(BristleConstants.CONNECTOR_RIGHTS_SET_VARIABLE_NAME, rightsSet); } private static ConnectorRightsSet getConnectorRightsSet(WebSocketConnector connector) { Object rightsSet = connector.getVar(BristleConstants.CONNECTOR_RIGHTS_SET_VARIABLE_NAME); if (rightsSet == null) { throw new IllegalStateException("Rights set not initialized on connector " + connector); } return (ConnectorRightsSet) rightsSet; } /** * Checks if connector contains rights given as parameter. * * @param connector websocket connector. * @param requiredRights required rights. * @return true if connector posses every right from array. */ public static boolean hasRights(WebSocketConnector connector, String[] requiredRights) { return hasRights(connector, Arrays.asList(requiredRights)); } /** * Another way to check whether connector has rights given as a parameter. * * @param connector websocket connector * @param requiredRights required rights. * @return true if connector posses every right from collection. */ public static boolean hasRights(WebSocketConnector connector, Collection requiredRights) { ConnectorRightsSet rightsSet = getConnectorRightsSet(connector); return rightsSet.hasRights(requiredRights); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy