Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * This program is free software; you can redistribute it and/or modify it under the
  * terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software
  * Foundation.
  *
  * You should have received a copy of the GNU Lesser General Public License along with this
  * program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
  * or from the Free Software Foundation, Inc.,
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * 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 Lesser General Public License for more details.
 *
 * Copyright (c) 2009 Pentaho Corporation.  All rights reserved.
 */
package org.pentaho.metadata.util;
public class SecurityHelper {
    Domain clone = (Domain)domain.clone();
    
    // force security on model, logical tables, logical columns, and categories
    
    Iterator<LogicalModeliter = clone.getLogicalModels().iterator();
    while (iter.hasNext()) {
      LogicalModel model = iter.next();
      if (!repo.hasAccess(.model)) {
        iter.remove();
      } else {
        Iterator<LogicalTabletbliter = model.getLogicalTables().iterator();
        while (tbliter.hasNext()) {
          LogicalTable table = tbliter.next();
          if (!repo.hasAccess(.table)) {
            tbliter.remove();
          } else {
            Iterator<LogicalColumncoliter = table.getLogicalColumns().iterator();
            while (coliter.hasNext()) {
              LogicalColumn col = coliter.next();
              if (!repo.hasAccess(.col)) {
                coliter.remove();
              }            
            }
          }
        }
        Iterator<Categorycatiter = model.getCategories().iterator();
        while (catiter.hasNext()) {
          Category category = catiter.next();
          if (!repo.hasAccess(.category)) {
            catiter.remove();
          } else {
            Iterator<LogicalColumncoliter = category.getLogicalColumns().iterator();
            while (coliter.hasNext()) {
              LogicalColumn col = coliter.next();
              if (!repo.hasAccess(.col)) {
                coliter.remove();
              }            
            }
          }
        }
      }
    }
    return clone;
  }
New to GrepCode? Check out our FAQ X