[teiid-commits] teiid SVN: r2701 - in branches/7.1.x/engine/src: test/java/org/teiid/dqp/internal/process and 1 other directory.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Wed Nov 3 11:52:59 EDT 2010


Author: shawkins
Date: 2010-11-03 11:52:58 -0400 (Wed, 03 Nov 2010)
New Revision: 2701

Modified:
   branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/DQPWorkContext.java
   branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPWorkContext.java
Log:
TEIID-1345: fix for needing a role to have any authenticated.

Modified: branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/DQPWorkContext.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/DQPWorkContext.java	2010-11-02 18:22:19 UTC (rev 2700)
+++ branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/DQPWorkContext.java	2010-11-03 15:52:58 UTC (rev 2701)
@@ -29,7 +29,6 @@
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.List;
 import java.util.Set;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutionException;
@@ -199,9 +198,6 @@
 		if (this.policies == null) {
 	    	this.policies = new HashMap<String, DataPolicy>();
 	    	Set<String> userRoles = getUserRoles();
-	    	if (userRoles.isEmpty()) {
-	    		return this.policies;
-	    	}
 	    	
 	    	// get data roles from the VDB
 	    	for (DataPolicy policy : getVDB().getDataPolicies()) {
@@ -217,13 +213,7 @@
 		if (policy.isAnyAuthenticated()) {
 			return true;
 		}
-		List<String> roles = policy.getMappedRoleNames();
-		for (String role:roles) {
-			if (userRoles.contains(role)) {
-				return true;
-			}
-		}
-		return false;
+		return !Collections.disjoint(policy.getMappedRoleNames(), userRoles);
 	}    
 
 	private Set<String> getUserRoles() {

Modified: branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPWorkContext.java
===================================================================
--- branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPWorkContext.java	2010-11-02 18:22:19 UTC (rev 2700)
+++ branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPWorkContext.java	2010-11-03 15:52:58 UTC (rev 2701)
@@ -26,7 +26,9 @@
 
 import org.mockito.Mockito;
 import org.teiid.adminapi.DataPolicy;
+import org.teiid.adminapi.impl.DataPolicyMetadata;
 import org.teiid.adminapi.impl.SessionMetadata;
+import org.teiid.adminapi.impl.VDBMetaData;
 import org.teiid.core.util.UnitTestUtil;
 
 import junit.framework.TestCase;
@@ -67,12 +69,27 @@
 	public void testClearPolicies() {
 		DQPWorkContext message = new DQPWorkContext();
 		message.setSession(Mockito.mock(SessionMetadata.class));
+		Mockito.stub(message.getSession().getVdb()).toReturn(new VDBMetaData());
 		Map<String, DataPolicy> map = message.getAllowedDataPolicies();
 		map.put("role", Mockito.mock(DataPolicy.class)); //$NON-NLS-1$
 		assertFalse(map.isEmpty());
 		
 		message.setSession(Mockito.mock(SessionMetadata.class));
+		Mockito.stub(message.getSession().getVdb()).toReturn(new VDBMetaData());
 		map = message.getAllowedDataPolicies();
 		assertTrue(map.isEmpty());
 	}
+	
+	public void testAnyAuthenticated() {
+		DQPWorkContext message = new DQPWorkContext();
+		message.setSession(Mockito.mock(SessionMetadata.class));
+		VDBMetaData vdb = new VDBMetaData();
+		DataPolicyMetadata dpm = new DataPolicyMetadata();
+		dpm.setAnyAuthenticated(true);
+		vdb.addDataPolicy(dpm);
+		Mockito.stub(message.getSession().getVdb()).toReturn(vdb);
+		
+		Map<String, DataPolicy> map = message.getAllowedDataPolicies();
+		assertEquals(1, map.size());
+	}
 }



More information about the teiid-commits mailing list