[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