[Yanel-commits] rev 49468 - public/yanel/trunk/src/contributions/resources/security-api/src/java/org/wyona/yanel/impl/resources/securityapi

michi at wyona.com michi at wyona.com
Mon May 10 23:30:44 CEST 2010


Author: michi
Date: 2010-05-10 23:30:44 +0200 (Mon, 10 May 2010)
New Revision: 49468

Modified:
   public/yanel/trunk/src/contributions/resources/security-api/src/java/org/wyona/yanel/impl/resources/securityapi/UserManagerResource.java
Log:
remove members implemented

Modified: public/yanel/trunk/src/contributions/resources/security-api/src/java/org/wyona/yanel/impl/resources/securityapi/UserManagerResource.java
===================================================================
--- public/yanel/trunk/src/contributions/resources/security-api/src/java/org/wyona/yanel/impl/resources/securityapi/UserManagerResource.java	2010-05-10 19:03:25 UTC (rev 49467)
+++ public/yanel/trunk/src/contributions/resources/security-api/src/java/org/wyona/yanel/impl/resources/securityapi/UserManagerResource.java	2010-05-10 21:30:44 UTC (rev 49468)
@@ -56,6 +56,8 @@
                 sb.append(getGroupsAsXML());
             } else if (usecase.equals("add-members-to-group")) {
                 addMembersToGroup(getEnvironment().getRequest().getParameter("id"));
+            } else if (usecase.equals("remove-members-from-group")) {
+                removeMembersFromGroup(getEnvironment().getRequest().getParameter("id"));
             } else if (usecase.equals("getgroup")) {
                 sb.append(getGroupAsXML(getEnvironment().getRequest().getParameter("id")));
             } else if (usecase.equals("deletepolicy")) {
@@ -121,7 +123,7 @@
         StringBuilder sb = new StringBuilder("<group xmlns=\"http://www.wyona.org/security/1.0\" id=\"" + id + "\">");
         sb.append("<members>");
         for (int i = 0; i < members.length; i++) {
-            log.warn("DEBUG: Member: " + members[i].getID());
+            log.debug("Member: " + members[i].getID());
             if (members[i] instanceof User) {
                 sb.append("<user id=\"" + members[i].getID() + "\"/>");
             } else if (members[i] instanceof Group) {
@@ -141,12 +143,12 @@
         if (parentGroups != null && parentGroups.length > 0) {
             sb.append("<parents>");
             for (int i = 0; i < parentGroups.length; i++) {
-                log.warn("DEBUG: Group: " + parentGroups[i].getID());
+                log.debug("Group: " + parentGroups[i].getID());
                 sb.append("<group id=\"" + parentGroups[i].getID() + "\"/>");
             }
             sb.append("</parents>");
         } else {
-            log.warn("DEBUG: Group '" + group.getID() + "' has no parents!");
+            log.info("Group '" + group.getID() + "' has no parents!");
         }
 
         sb.append("</group>");
@@ -174,10 +176,10 @@
         for (int i = 0; i < members.length; i++) {
             String typeID[] = members[i].split(":");
             if (typeID[0].equals("u")) {
-                log.warn("DEBUG: Add user '" + typeID[1] + "' to group: " + id);
+                log.debug("Add user '" + typeID[1] + "' to group: " + id);
                 group.addMember(um.getUser(typeID[1]));
             } else if (typeID[0].equals("g")) {
-                log.warn("DEBUG: Add group '" + typeID[1] + "' to group: " + id);
+                log.debug("Add group '" + typeID[1] + "' to group: " + id);
                 group.addMember(gm.getGroup(typeID[1]));
             }
         }
@@ -185,6 +187,28 @@
     }
 
     /**
+     * Remove members (users and groups) from group
+     * @param id Group ID from which members will be removed
+     */
+    private void removeMembersFromGroup(String id) throws AccessManagementException {
+        GroupManager gm = getRealm().getIdentityManager().getGroupManager();
+        UserManager um = getRealm().getIdentityManager().getUserManager();
+        Group group = gm.getGroup(id);
+        String[] members = getEnvironment().getRequest().getParameter("members").split(",");
+        for (int i = 0; i < members.length; i++) {
+            String typeID[] = members[i].split(":");
+            if (typeID[0].equals("u")) {
+                log.warn("DEBUG: Remove user '" + typeID[1] + "' from group: " + id);
+                group.removeMember(um.getUser(typeID[1]));
+            } else if (typeID[0].equals("g")) {
+                log.warn("DEBUG: Remove group '" + typeID[1] + "' from group: " + id);
+                group.removeMember(gm.getGroup(typeID[1]));
+            }
+        }
+        group.save();
+    }
+
+    /**
      * Get all groups
      */
     private StringBuilder getGroupsAsXML() throws Exception {



More information about the Yanel-commits mailing list