From ef7f0adef06694045d2c3a219111849a4077b241 Mon Sep 17 00:00:00 2001
From: lutoff <lutoff@localhost>
Date: Wed, 25 Jul 2007 09:42:50 +0000
Subject: [PATCH] fix for issue #2019 (dsframework delete-group doesn't update server property "GROUPS")
---
opendj-sdk/opends/src/server/org/opends/server/admin/client/cli/DsFrameworkCliServerGroup.java | 23 ++++++++++++++++++-----
1 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/admin/client/cli/DsFrameworkCliServerGroup.java b/opendj-sdk/opends/src/server/org/opends/server/admin/client/cli/DsFrameworkCliServerGroup.java
index b6b7920..f8fd6bb 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/admin/client/cli/DsFrameworkCliServerGroup.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/admin/client/cli/DsFrameworkCliServerGroup.java
@@ -506,22 +506,34 @@
// -----------------------
else if (subCmd.getName().equals(deleteGroupSubCmd.getName()))
{
+ returnCode = ReturnCode.SUCCESSFUL;
String groupId = deleteGroupGroupNameArg.getValue();
+ if (groupId.equals(ADSContext.ALL_SERVERGROUP_NAME))
+ {
+ return ReturnCode.ACCESS_PERMISSION ;
+ }
HashMap<ServerGroupProperty, Object> serverGroupProperties =
new HashMap<ServerGroupProperty, Object>();
- // get the GROUP_ID
- serverGroupProperties.put(ServerGroupProperty.UID, groupId);
-
- // Delete the group
+ // Get ADS context
ctx = argParser.getContext(outStream, errStream);
if (ctx == null)
{
return ReturnCode.CANNOT_CONNECT_TO_ADS;
}
adsCtx = new ADSContext(ctx) ;
+
+ // update server Property "GROUPS"
+ Set<String> serverList = adsCtx.getServerGroupMemberList(groupId);
+ for (String serverId : serverList)
+ {
+ // serverId conatins "cn=" string, just remove it.
+ removeServerFromGroup(adsCtx, groupId,serverId.substring(3));
+ }
+
+ // Delete the group
+ serverGroupProperties.put(ServerGroupProperty.UID, groupId);
adsCtx.deleteServerGroup(serverGroupProperties);
- returnCode = ReturnCode.SUCCESSFUL;
}
// -----------------------
// list-groups subcommand
@@ -788,6 +800,7 @@
StringBuffer buffer = new StringBuffer();
for (String member : memberList)
{
+ // We shouldn't print out the "cn="
buffer.append(member.substring(3));
buffer.append(EOL);
}
--
Gitblit v1.10.0