[jboss-svn-commits] JBL Code SVN: r21449 - in labs/jbossrules/trunk/drools-repository/src: test/java/org/drools/repository/security and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Aug 12 02:55:30 EDT 2008


Author: michael.neale at jboss.com
Date: 2008-08-12 02:55:30 -0400 (Tue, 12 Aug 2008)
New Revision: 21449

Modified:
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/security/PermissionManager.java
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/security/PermissionManagerTest.java
Log:
Security stuff

Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/security/PermissionManager.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/security/PermissionManager.java	2008-08-12 06:51:49 UTC (rev 21448)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/security/PermissionManager.java	2008-08-12 06:55:30 UTC (rev 21449)
@@ -40,6 +40,8 @@
     public void updateUserPermissions(String userName, Map<String, List<String>> perms) {
     	try {
 	    	Node permsNode = getUserPermissionNode(userName);
+	    	permsNode.remove(); //remove this so we get a fresh set
+	    	permsNode = getUserPermissionNode(userName);
 	    	for (Iterator<String> iterator = perms.keySet().iterator(); iterator.hasNext();) {
 				String perm = iterator.next();
 				List<String> targets = perms.get(perm);
@@ -144,9 +146,19 @@
 		getNode(root, "user_info").remove();
 	}
 
+	public void removeUserPermissions(String userName) {
+		try {
+	    	Node permsNode = getUserPermissionNode(userName);
+	    	permsNode.getParent().remove(); //remove this so we get a fresh set
+		} catch (RepositoryException e) {
+			throw new RulesRepositoryException(e);
+		}
 
+	}
 
 
 
 
+
+
 }

Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/security/PermissionManagerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/security/PermissionManagerTest.java	2008-08-12 06:51:49 UTC (rev 21448)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/security/PermissionManagerTest.java	2008-08-12 06:55:30 UTC (rev 21449)
@@ -43,14 +43,50 @@
 		List<String> aperms = perms_.get("admin");
 		assertEquals(0, aperms.size());
 
+		perms_.remove("admin");
+		assertEquals(0, perms_.size());
+		pm.updateUserPermissions("wankle2", perms_);
+		perms_ = pm.retrieveUserPermissions("wankle2");
+		assertEquals(0, perms_.size());
+
+
+
 		perms_ = pm.retrieveUserPermissions("wankle");
 
 		padmin = perms_.get("package.admin");
 		assertEquals(1, padmin.size());
 		assertEquals("1234567890", padmin.get(0));
 
+		assertTrue(pm.listUsers().containsKey("wankle"));
+		pm.removeUserPermissions("wankle");
+
+		assertFalse(pm.listUsers().containsKey("wankle"));
+
+
+
 	}
 
+	public void testUpdatePerms() throws Exception {
+		PermissionManager pm = new PermissionManager(RepositorySessionUtil.getRepository());
+		Map<String, List<String>> perms = new HashMap<String, List<String>>() {{
+			put("package.admin", new ArrayList<String>() {{add("1234567890");}});
+			put("package.developer", new ArrayList<String>() {{add("1"); add("2");}});
+			put("analyst", new ArrayList<String>() {{add("HR");}});
+			put("admin", new ArrayList<String>());
+		}};
+		pm.updateUserPermissions("testUpdatePermsWankle", perms);
+
+		perms = pm.retrieveUserPermissions("testUpdatePermsWankle");
+		assertEquals(4, perms.size());
+		perms.remove("package.developer");
+		pm.updateUserPermissions("testUpdatePermsWankle", perms);
+		perms = pm.retrieveUserPermissions("testUpdatePermsWankle");
+		assertEquals(3, perms.size());
+
+
+
+	}
+
 	public void testNilUser() throws Exception {
 		PermissionManager pm = new PermissionManager(RepositorySessionUtil.getRepository());
 		Map<String, List<String>> perms_ = pm.retrieveUserPermissions("nobody");




More information about the jboss-svn-commits mailing list