Package com.opengamma.engine.view.permission

Source Code of com.opengamma.engine.view.permission.NamedUsersPortfolioPermissionProvider

/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.engine.view.permission;

import java.util.Map;
import java.util.Set;

import com.opengamma.engine.view.client.NodeCheckingPortfolioFilter;
import com.opengamma.engine.view.client.PortfolioFilter;
import com.opengamma.engine.view.client.UserPermissionNodeChecker;
import com.opengamma.livedata.UserPrincipal;
import com.opengamma.util.ArgumentChecker;

/**
*
*/
public class NamedUsersPortfolioPermissionProvider implements ViewPortfolioPermissionProvider {

  public static final NoOpPortfolioFilter NOOP_PORTFOLIO_FILTER = new NoOpPortfolioFilter();

  /**
   * The set of users to whom restrictions should be applied. Users not in this set will
   * have unfettered access, not null.
   */
  private final Set<String> _restrictedUsers;

  /**
   * Mapping of portfolio to the user who is allowed to see it. Portfolios not listed
   * have no restrictions on who can view them, not null.
   */
  private final Map<String, String> _portfolioUserMapping;

  /**
   * Create the permission provider for the users and portfolios.
   *
   * @param restrictedUsers the set of users to whom restrictions
   * should be applied. Users not in this set will have unfettered
   * access. Not null.
   * @param portfolioUserMapping mapping of portfolio to the user
   * who is allowed to see it. Portfolios not listed have no
   * restrictions on who can view them. Not null.
   */
  public NamedUsersPortfolioPermissionProvider(Set<String> restrictedUsers,
                                               Map<String, String> portfolioUserMapping) {
    ArgumentChecker.notNull(restrictedUsers, "restrictedUsers");
    ArgumentChecker.notNull(portfolioUserMapping, "portfolioUserMapping");
    _restrictedUsers = restrictedUsers;
    _portfolioUserMapping = portfolioUserMapping;
  }

  @Override
  public PortfolioFilter createPortfolioFilter(UserPrincipal user) {

    return _restrictedUsers.contains(user.getUserName()) ?
        new NodeCheckingPortfolioFilter(new UserPermissionNodeChecker(_portfolioUserMapping, user)) :
        NOOP_PORTFOLIO_FILTER;
  }
}
TOP

Related Classes of com.opengamma.engine.view.permission.NamedUsersPortfolioPermissionProvider

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.