[jboss-svn-commits] JBL Code SVN: r21376 - 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 5 21:25:42 EDT 2008
Author: michael.neale at jboss.com
Date: 2008-08-05 21:25:42 -0400 (Tue, 05 Aug 2008)
New Revision: 21376
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:
list user permission types
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-05 23:12:28 UTC (rev 21375)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/security/PermissionManager.java 2008-08-06 01:25:42 UTC (rev 21376)
@@ -91,9 +91,49 @@
return permsNode;
}
+ /**
+ * Returns a list of users and their permissions types for display.
+ * The Map maps:
+ *
+ * userName => [list of permission types, eg admin, package.admin etc... no IDs]
+ * For display purposes only.
+ * @throws RepositoryException
+ */
+ public Map<String, List<String>> listUsers() throws RepositoryException {
+ Map<String, List<String>> listing = new HashMap<String, List<String>>();
+ Node root = this.repository.getSession().getRootNode();
+ Node usersNode = getNode(root, "user_info");
+ NodeIterator users = usersNode.getNodes();
+ while (users.hasNext()) {
+ Node userNode = (Node) users.next();
+ listing.put(userNode.getName(), listOfPermTypes(userNode));
+ }
+ return listing;
+ }
+ private List<String> listOfPermTypes(Node userNode) throws RepositoryException {
+ List<String> permTypes = new ArrayList<String>();
+ Node permsNode = getNode(userNode, "permissions");
+ PropertyIterator perms = permsNode.getProperties();
+ while (perms.hasNext()) {
+ Property p = (Property) perms.next();
+ String name = p.getName();
+ if (!name.startsWith("jcr")) {
+ permTypes.add(name);
+ }
+ }
+ return permTypes;
+ }
+ void deleteAllPermissions() throws RepositoryException {
+ Node root = this.repository.getSession().getRootNode();
+ getNode(root, "user_info").remove();
+ }
+
+
+
+
}
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-05 23:12:28 UTC (rev 21375)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/security/PermissionManagerTest.java 2008-08-06 01:25:42 UTC (rev 21376)
@@ -59,4 +59,56 @@
perms_ = pm.retrieveUserPermissions("nobody");
assertEquals(0, perms_.size());
}
+
+ public void testListingUsers() throws Exception {
+
+
+ PermissionManager pm = new PermissionManager(RepositorySessionUtil.getRepository());
+ pm.deleteAllPermissions();
+
+ 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("listingUser1", perms);
+
+ perms = new HashMap<String, List<String>>() {{
+ put("admin", new ArrayList<String>());
+ }};
+ pm.updateUserPermissions("listingUser2", perms);
+ pm.updateUserPermissions("listingUser3", perms);
+
+ perms = new HashMap<String, List<String>>() {{
+ put("package.developer", new ArrayList<String>() {{add("1"); add("2");}});
+ }};
+
+ pm.updateUserPermissions("listingUser4", perms);
+ perms = new HashMap<String, List<String>>() {{
+ put("analyst", new ArrayList<String>() {{add("1"); add("2");}});
+ }};
+ pm.updateUserPermissions("listingUser5", perms);
+
+ Map<String, List<String>> result = pm.listUsers();
+ assertNotNull(result);
+ assertEquals(5, result.size());
+ assertTrue(result.containsKey("listingUser1"));
+ assertTrue(result.containsKey("listingUser2"));
+ assertTrue(result.containsKey("listingUser3"));
+ assertTrue(result.containsKey("listingUser4"));
+ assertTrue(result.containsKey("listingUser5"));
+
+ List<String> permTypes = result.get("listingUser1");
+ assertEquals(4, permTypes.size());
+ assertTrue(permTypes.contains("package.developer"));
+
+
+ permTypes = result.get("listingUser5");
+ assertEquals(1, permTypes.size());
+ assertEquals("analyst", permTypes.get(0));
+
+
+ }
+
}
More information about the jboss-svn-commits
mailing list