From 04f1cc0b5351b6d39dc43cd574d92359573c9ea2 Mon Sep 17 00:00:00 2001
From: Chris Ridd <chris.ridd@forgerock.com>
Date: Tue, 06 Aug 2013 15:39:09 +0000
Subject: [PATCH] CR-2124 Fix OPENDJ-1016 Control panel does not follow static group recommendation from documentation

---
 opends/src/guitools/org/opends/guitools/controlpanel/task/AddToGroupTask.java |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/opends/src/guitools/org/opends/guitools/controlpanel/task/AddToGroupTask.java b/opends/src/guitools/org/opends/guitools/controlpanel/task/AddToGroupTask.java
index 34afc81..3265d9c 100644
--- a/opends/src/guitools/org/opends/guitools/controlpanel/task/AddToGroupTask.java
+++ b/opends/src/guitools/org/opends/guitools/controlpanel/task/AddToGroupTask.java
@@ -23,6 +23,7 @@
  *
  *
  *      Copyright 2008-2010 Sun Microsystems, Inc.
+ *      Portions Copyright 2013 ForgeRock AS.
  */
 
 package org.opends.guitools.controlpanel.task;
@@ -251,6 +252,8 @@
     ctls.setSearchScope(SearchControls.OBJECT_SCOPE);
     ctls.setReturningAttributes(
         new String[] {
+            ServerConstants.OBJECTCLASS_ATTRIBUTE_TYPE_NAME,
+            ServerConstants.ATTR_MEMBER,
             ServerConstants.ATTR_UNIQUE_MEMBER
         });
     String filter = BrowserController.ALL_OBJECTS_FILTER;
@@ -261,11 +264,19 @@
 
     try
     {
+      String memberAttr = ServerConstants.ATTR_MEMBER;
       while (result.hasMore())
       {
         SearchResult sr = result.next();
+        Set<String> objectClasses =
+          ConnectionUtils.getValues(sr, ServerConstants
+            .OBJECTCLASS_ATTRIBUTE_TYPE_NAME);
+        if (objectClasses.contains(ServerConstants.OC_GROUP_OF_UNIQUE_NAMES))
+        {
+          memberAttr = ServerConstants.ATTR_UNIQUE_MEMBER;
+        }
         Set<String> values =
-          ConnectionUtils.getValues(sr, ServerConstants.ATTR_UNIQUE_MEMBER);
+          ConnectionUtils.getValues(sr, memberAttr);
         Set<String> dnsToAdd = new LinkedHashSet<String>();
         if (values != null)
         {
@@ -296,7 +307,7 @@
         if (dnsToAdd.size() > 0)
         {
           Attribute attribute =
-            new BasicAttribute(ServerConstants.ATTR_UNIQUE_MEMBER);
+            new BasicAttribute(memberAttr);
           for (String dn : dnsToAdd)
           {
             attribute.add(dn);

--
Gitblit v1.10.0