From af0262bb64a8af914014be3f736e8ec640ddb226 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

---
 opendj-sdk/opends/src/messages/messages/admin_tool_de.properties                                 |    3 
 opendj-sdk/opends/src/messages/messages/admin_tool_fr.properties                                 |    3 
 opendj-sdk/opends/src/messages/messages/admin_tool_ja.properties                                 |    3 
 opendj-sdk/opends/src/messages/messages/admin_tool_zh_CN.properties                              |    3 
 opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/AddToGroupPanel.java          |    6 +
 opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/NewGroupPanel.java            |   21 ++++--
 opendj-sdk/opends/src/messages/messages/admin_tool.properties                                    |    1 
 opendj-sdk/opends/src/messages/messages/admin_tool_es.properties                                 |    3 
 opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/SimplifiedViewEntryPanel.java |    3 +
 opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java       |   24 ++++---
 opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/task/AddToGroupTask.java         |   15 ++++
 opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/LDAPEntrySelectionPanel.java  |    4 +
 opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/browser/IconPool.java            |   35 +++++++----
 13 files changed, 84 insertions(+), 40 deletions(-)

diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/browser/IconPool.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/browser/IconPool.java
index bf3ae5a..9e7ba52 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/browser/IconPool.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/browser/IconPool.java
@@ -23,6 +23,7 @@
  *
  *
  *      Copyright 2008-2010 Sun Microsystems, Inc.
+ *      Portions Copyright 2013 ForgeRock AS.
  */
 
 package org.opends.guitools.controlpanel.browser;
@@ -44,6 +45,7 @@
 
 import org.opends.guitools.controlpanel.util.Utilities;
 import org.opends.quicksetup.ui.UIFactory;
+import org.opends.server.util.ServerConstants;
 
 /**
  * This class is used as a cache containing the icons that are used by the
@@ -86,23 +88,32 @@
 
 
   private static final String[] ICON_PATH = {
-    "person",  "ds-user.png",
-    "organization", "ds-folder.png",
-    "organizationalunit",  "ds-ou.png",
-    "groupofuniquenames",  "ds-group.png",
-    "groupofurls",  "ds-group.png",
-    "ds-virtual-static-group",  "ds-group.png",
+    ServerConstants.OC_PERSON,  "ds-user.png",
+    ServerConstants.OC_ORGANIZATION, "ds-folder.png",
+    ServerConstants.OC_ORGANIZATIONAL_UNIT_LC,  "ds-ou.png",
+    ServerConstants.OC_GROUP_OF_NAMES_LC, "ds-group.png",
+    ServerConstants.OC_GROUP_OF_ENTRIES_LC, "ds-group.png",
+    ServerConstants.OC_GROUP_OF_UNIQUE_NAMES_LC,  "ds-group.png",
+    ServerConstants.OC_GROUP_OF_URLS_LC,  "ds-group.png",
+    ServerConstants.OC_VIRTUAL_STATIC_GROUP,  "ds-group.png",
     "passwordpolicy",   "ds-ppol.png"
   };
 
   private static final String[] DESCRIPTION = {
-    "person", INFO_PERSON_ICON_DESCRIPTION.get().toString(),
-    "organization", INFO_ORGANIZATION_ICON_DESCRIPTION.get().toString(),
-    "organizationalunit",
+    ServerConstants.OC_PERSON, INFO_PERSON_ICON_DESCRIPTION.get().toString(),
+    ServerConstants.OC_ORGANIZATION, INFO_ORGANIZATION_ICON_DESCRIPTION.get()
+      .toString(),
+    ServerConstants.OC_ORGANIZATIONAL_UNIT_LC,
     INFO_ORGANIZATIONAL_UNIT_ICON_DESCRIPTION.get().toString(),
-    "groupofuniquenames", INFO_STATIC_GROUP_ICON_DESCRIPTION.get().toString(),
-    "groupofurls", INFO_DYNAMIC_GROUP_ICON_DESCRIPTION.get().toString(),
-    "ds-virtual-static-group",
+    ServerConstants.OC_GROUP_OF_NAMES_LC, INFO_STATIC_GROUP_ICON_DESCRIPTION
+      .get().toString(),
+    ServerConstants.OC_GROUP_OF_ENTRIES_LC, INFO_STATIC_GROUP_ICON_DESCRIPTION
+      .get().toString(),
+    ServerConstants.OC_GROUP_OF_UNIQUE_NAMES_LC,
+      INFO_STATIC_GROUP_ICON_DESCRIPTION.get().toString(),
+    ServerConstants.OC_GROUP_OF_URLS_LC, INFO_DYNAMIC_GROUP_ICON_DESCRIPTION
+      .get().toString(),
+    ServerConstants.OC_VIRTUAL_STATIC_GROUP,
     INFO_VIRTUAL_STATIC_GROUP_ICON_DESCRIPTION.get().toString(),
     "passwordpolicy", INFO_PASSWORD_POLICY_ICON_DESCRIPTION.get().toString()
   };
diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/task/AddToGroupTask.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/task/AddToGroupTask.java
index 34afc81..3265d9c 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/task/AddToGroupTask.java
+++ b/opendj-sdk/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);
diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/AddToGroupPanel.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/AddToGroupPanel.java
index 38065f7..f5efaba 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/AddToGroupPanel.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/AddToGroupPanel.java
@@ -23,6 +23,7 @@
  *
  *
  *      Copyright 2008-2009 Sun Microsystems, Inc.
+ *      Portions Copyright 2013 ForgeRock AS.
  */
 
 package org.opends.guitools.controlpanel.ui;
@@ -63,6 +64,7 @@
 import org.opends.messages.Message;
 import org.opends.server.types.DN;
 import org.opends.server.types.OpenDsException;
+import org.opends.server.util.ServerConstants;
 
 /**
  * The dialog that is displayed when we want to add entries to a set of groups.
@@ -388,7 +390,9 @@
             errors.add(
                 ERR_CTRL_PANEL_GROUP_COULD_NOT_BE_FOUND.get(groupDn));
           }
-          else if (!hasObjectClass(groupDn, "groupOfUniqueNames"))
+          else if (!hasObjectClass(groupDn, ServerConstants.OC_GROUP_OF_NAMES,
+            ServerConstants.OC_GROUP_OF_ENTRIES,
+            ServerConstants.OC_GROUP_OF_UNIQUE_NAMES))
           {
             errors.add(ERR_CTRL_PANEL_NOT_A_STATIC_GROUP.get(groupDn));
           }
diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/LDAPEntrySelectionPanel.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/LDAPEntrySelectionPanel.java
index 56d8c07..5567bb5 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/LDAPEntrySelectionPanel.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/LDAPEntrySelectionPanel.java
@@ -23,6 +23,7 @@
  *
  *
  *      Copyright 2008-2009 Sun Microsystems, Inc.
+ *      Portions Copyright 2013 ForgeRock AS.
  */
 
 package org.opends.guitools.controlpanel.ui;
@@ -251,7 +252,8 @@
       break;
     case STATIC_GROUPS:
       filterAttribute.setSelectedItem(LDAP_FILTER);
-      super.filter.setText("objectClass=groupOfUniqueNames");
+      super.filter.setText("(|(objectClass=groupOfNames)" +
+        "(objectClass=groupOfEntries)(objectClass=groupOfUniqueNames))");
       break;
     case DEFAULT:
       Object o = filterAttribute.getItemAt(0);
diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/NewGroupPanel.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/NewGroupPanel.java
index 5d841d7..116e85f 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/NewGroupPanel.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/NewGroupPanel.java
@@ -23,6 +23,7 @@
  *
  *
  *      Copyright 2008-2010 Sun Microsystems, Inc.
+ *      Portions Copyright 2013 ForgeRock AS.
  */
 
 package org.opends.guitools.controlpanel.ui;
@@ -734,7 +735,7 @@
   protected String getLDIF()
   {
     StringBuilder sb = new StringBuilder();
-    sb.append("dn: "+dn.getText()+"\n");
+    sb.append("dn: ").append(dn.getText()).append("\n");
 
     String[] attrNames = {"cn", "description"};
     JTextField[] textFields = {name, description};
@@ -743,14 +744,14 @@
       String value = textFields[i].getText().trim();
       if (value.length() > 0)
       {
-        sb.append(attrNames[i]+": "+value+"\n");
+        sb.append(attrNames[i]).append(": ").append(value).append("\n");
       }
     }
 
     sb.append("objectclass: top\n");
     if (staticGroup.isSelected())
     {
-      sb.append("objectClass: "+ServerConstants.OC_GROUP_OF_UNIQUE_NAMES);
+      sb.append("objectClass: ").append(ServerConstants.OC_GROUP_OF_NAMES);
       String[] members = staticMembers.getText().split("\n");
       LinkedHashSet<DN> dns = new LinkedHashSet<DN>();
       for (String member : members)
@@ -772,19 +773,23 @@
 
       for (DN dn : dns)
       {
-        sb.append("\n"+ServerConstants.ATTR_UNIQUE_MEMBER+": "+dn.toString());
+        sb.append("\n").append(ServerConstants.ATTR_MEMBER)
+          .append(": ").append(dn);
       }
     }
     else if (dynamicGroup.isSelected())
     {
-      sb.append("objectClass: "+ServerConstants.OC_GROUP_OF_URLS+"\n");
-      sb.append(ServerConstants.ATTR_MEMBER_URL+": "+filter.getText().trim());
+      sb.append("objectClass: ").append(ServerConstants.OC_GROUP_OF_URLS)
+        .append("\n");
+      sb.append(ServerConstants.ATTR_MEMBER_URL).append(": ")
+        .append(filter.getText().trim());
     }
     else
     {
       sb.append("objectClass: ds-virtual-static-group\n");
-      sb.append("objectClass: "+ServerConstants.OC_GROUP_OF_UNIQUE_NAMES+"\n");
-      sb.append("ds-target-group-dn: "+referenceGroup.getText().trim());
+      sb.append("objectClass: ").append(ServerConstants.OC_GROUP_OF_NAMES)
+        .append("\n");
+      sb.append("ds-target-group-dn: ").append(referenceGroup.getText().trim());
     }
 
     return sb.toString();
diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/SimplifiedViewEntryPanel.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/SimplifiedViewEntryPanel.java
index 33aad38..6264508 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/SimplifiedViewEntryPanel.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/SimplifiedViewEntryPanel.java
@@ -23,6 +23,7 @@
  *
  *
  *      Copyright 2008-2010 Sun Microsystems, Inc.
+ *      Portions Copyright 2013 ForgeRock AS.
  */
 
 package org.opends.guitools.controlpanel.ui;
@@ -190,6 +191,8 @@
         INFO_CTRL_PANEL_POSTALADDRESS_FRIENDLY_NAME.get());
     hmFriendlyAttrNames.put(ServerConstants.ATTR_UNIQUE_MEMBER_LC,
         INFO_CTRL_PANEL_UNIQUEMEMBER_FRIENDLY_NAME.get());
+    hmFriendlyAttrNames.put(ServerConstants.ATTR_MEMBER,
+        INFO_CTRL_PANEL_MEMBER_FRIENDLY_NAME.get());
     hmFriendlyAttrNames.put(ServerConstants.ATTR_MEMBER_URL_LC,
         INFO_CTRL_PANEL_MEMBERURL_FRIENDLY_NAME.get());
     hmFriendlyAttrNames.put(ServerConstants.ATTR_C,
diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java
index 0481541..161864d 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java
@@ -23,7 +23,7 @@
  *
  *
  *      Copyright 2008-2010 Sun Microsystems, Inc.
- *      Portions Copyright 2013 ForgeRock AS
+ *      Portions Copyright 2013 ForgeRock AS.
  */
 package org.opends.guitools.controlpanel.ui;
 
@@ -2097,15 +2097,15 @@
   }
 
   /**
-   * Tells whether a given entry exists and contains the specified object class.
+   * Tells whether a given entry exists and contains one of the specified object
+   * classes.
    * @param dn the DN of the entry.
-   * @param objectClass the object class.
-   * @return <CODE>true</CODE> if the entry exists and contains the specified
-   * object class and <CODE>false</CODE> otherwise.
+   * @param objectClasses the object classes to check.
+   * @return <CODE>true</CODE> if the entry exists and contains one of the
+   * specified object classes and <CODE>false</CODE> otherwise.
    */
-  protected boolean hasObjectClass(String dn, String objectClass)
+  protected boolean hasObjectClass(String dn, String... objectClasses)
   {
-    boolean hasObjectClass = false;
     try
     {
       SearchControls ctls = new SearchControls();
@@ -2130,10 +2130,12 @@
           {
             for (String s : values)
             {
-              if (s.equalsIgnoreCase(objectClass))
+              for (String objectClass: objectClasses)
               {
-                hasObjectClass = true;
-                break;
+                if (s.equalsIgnoreCase(objectClass))
+                {
+                  return true;
+                }
               }
             }
           }
@@ -2147,7 +2149,7 @@
     catch (Throwable t)
     {
     }
-    return hasObjectClass;
+    return false;
   }
 
   /**
diff --git a/opendj-sdk/opends/src/messages/messages/admin_tool.properties b/opendj-sdk/opends/src/messages/messages/admin_tool.properties
index f453013..5b60c10 100644
--- a/opendj-sdk/opends/src/messages/messages/admin_tool.properties
+++ b/opendj-sdk/opends/src/messages/messages/admin_tool.properties
@@ -2445,6 +2445,7 @@
 INFO_CTRL_PANEL_FACSIMILETELEPHONENUMBER_FRIENDLY_NAME=Fax Number
 INFO_CTRL_PANEL_DESCRIPTION_FRIENDLY_NAME=Description
 INFO_CTRL_PANEL_POSTALADDRESS_FRIENDLY_NAME=Address
+INFO_CTRL_PANEL_MEMBER_FRIENDLY_NAME=Members of Group
 INFO_CTRL_PANEL_UNIQUEMEMBER_FRIENDLY_NAME=Members of Group
 INFO_CTRL_PANEL_MEMBERURL_FRIENDLY_NAME=LDAP URL
 INFO_CTRL_PANEL_C_FRIENDLY_NAME=Country
diff --git a/opendj-sdk/opends/src/messages/messages/admin_tool_de.properties b/opendj-sdk/opends/src/messages/messages/admin_tool_de.properties
index 7bcdabe..89a27ba 100644
--- a/opendj-sdk/opends/src/messages/messages/admin_tool_de.properties
+++ b/opendj-sdk/opends/src/messages/messages/admin_tool_de.properties
@@ -21,7 +21,7 @@
 # CDDL HEADER END
 #
 #      Copyright 2006-2010 Sun Microsystems, Inc.
-#      Portions Copyright 2011-2012 ForgeRock AS
+#      Portions Copyright 2011-2013 ForgeRock AS
 
 
 
@@ -1556,6 +1556,7 @@
 INFO_CTRL_PANEL_FACSIMILETELEPHONENUMBER_FRIENDLY_NAME=Faxnummer
 INFO_CTRL_PANEL_DESCRIPTION_FRIENDLY_NAME=Beschreibung
 INFO_CTRL_PANEL_POSTALADDRESS_FRIENDLY_NAME=Adresse
+INFO_CTRL_PANEL_MEMBER_FRIENDLY_NAME=Mitglieder der Gruppe
 INFO_CTRL_PANEL_UNIQUEMEMBER_FRIENDLY_NAME=Mitglieder der Gruppe
 INFO_CTRL_PANEL_MEMBERURL_FRIENDLY_NAME=LDAP-URL
 INFO_CTRL_PANEL_C_FRIENDLY_NAME=Land
diff --git a/opendj-sdk/opends/src/messages/messages/admin_tool_es.properties b/opendj-sdk/opends/src/messages/messages/admin_tool_es.properties
index 41b89fb..0815c13 100644
--- a/opendj-sdk/opends/src/messages/messages/admin_tool_es.properties
+++ b/opendj-sdk/opends/src/messages/messages/admin_tool_es.properties
@@ -21,7 +21,7 @@
 # CDDL HEADER END
 #
 #      Copyright 2006-2010 Sun Microsystems, Inc.
-#      Portions Copyright 2011-2012 ForgeRock AS
+#      Portions Copyright 2011-2013 ForgeRock AS
 
 
 
@@ -1557,6 +1557,7 @@
 INFO_CTRL_PANEL_DESCRIPTION_FRIENDLY_NAME=Descripci\u00f3n
 INFO_CTRL_PANEL_POSTALADDRESS_FRIENDLY_NAME=Direcci\u00f3n
 INFO_CTRL_PANEL_UNIQUEMEMBER_FRIENDLY_NAME=Miembros del grupo
+INFO_CTRL_PANEL_MEMBER_FRIENDLY_NAME=Miembros del grupo
 INFO_CTRL_PANEL_MEMBERURL_FRIENDLY_NAME=URL LDAP
 INFO_CTRL_PANEL_C_FRIENDLY_NAME=Pa\u00eds
 INFO_CTRL_PANEL_DS_TARGET_GROUP_DN_FRIENDLY_NAME=ND de referencia de grupo din\u00e1mico
diff --git a/opendj-sdk/opends/src/messages/messages/admin_tool_fr.properties b/opendj-sdk/opends/src/messages/messages/admin_tool_fr.properties
index 3f04aac..ed260c9 100644
--- a/opendj-sdk/opends/src/messages/messages/admin_tool_fr.properties
+++ b/opendj-sdk/opends/src/messages/messages/admin_tool_fr.properties
@@ -21,7 +21,7 @@
 # CDDL HEADER END
 #
 #      Copyright 2006-2010 Sun Microsystems, Inc.
-#      Portions Copyright 2011-2012 ForgeRock AS
+#      Portions Copyright 2011-2013 ForgeRock AS
 
 
 
@@ -1557,6 +1557,7 @@
 INFO_CTRL_PANEL_DESCRIPTION_FRIENDLY_NAME=Description
 INFO_CTRL_PANEL_POSTALADDRESS_FRIENDLY_NAME=Adresse
 INFO_CTRL_PANEL_UNIQUEMEMBER_FRIENDLY_NAME=Membres du groupe
+INFO_CTRL_PANEL_MEMBER_FRIENDLY_NAME=Membres du groupe
 INFO_CTRL_PANEL_MEMBERURL_FRIENDLY_NAME=Url de LDAP
 INFO_CTRL_PANEL_C_FRIENDLY_NAME=Pays
 INFO_CTRL_PANEL_DS_TARGET_GROUP_DN_FRIENDLY_NAME=DN de r\u00e9f\u00e9rence de groupe dynamique
diff --git a/opendj-sdk/opends/src/messages/messages/admin_tool_ja.properties b/opendj-sdk/opends/src/messages/messages/admin_tool_ja.properties
index b56a03c..b9d811d 100644
--- a/opendj-sdk/opends/src/messages/messages/admin_tool_ja.properties
+++ b/opendj-sdk/opends/src/messages/messages/admin_tool_ja.properties
@@ -21,7 +21,7 @@
 # CDDL HEADER END
 #
 #      Copyright 2006-2010 Sun Microsystems, Inc.
-#      Portions Copyright 2011-2012 ForgeRock AS
+#      Portions Copyright 2011-2013 ForgeRock AS
 
 
 
@@ -1554,6 +1554,7 @@
 INFO_CTRL_PANEL_DESCRIPTION_FRIENDLY_NAME=\u8aac\u660e
 INFO_CTRL_PANEL_POSTALADDRESS_FRIENDLY_NAME=\u4f4f\u6240
 INFO_CTRL_PANEL_UNIQUEMEMBER_FRIENDLY_NAME=\u30b0\u30eb\u30fc\u30d7\u306e\u30e1\u30f3\u30d0\u30fc
+INFO_CTRL_PANEL_MEMBER_FRIENDLY_NAME=\u30b0\u30eb\u30fc\u30d7\u306e\u30e1\u30f3\u30d0\u30fc
 INFO_CTRL_PANEL_MEMBERURL_FRIENDLY_NAME=LDAP URL
 INFO_CTRL_PANEL_C_FRIENDLY_NAME=\u56fd\u540d
 INFO_CTRL_PANEL_DS_TARGET_GROUP_DN_FRIENDLY_NAME=\u30c0\u30a4\u30ca\u30df\u30c3\u30af\u30b0\u30eb\u30fc\u30d7\u53c2\u7167 DN
diff --git a/opendj-sdk/opends/src/messages/messages/admin_tool_zh_CN.properties b/opendj-sdk/opends/src/messages/messages/admin_tool_zh_CN.properties
index 67fad9f..1ce60a5 100644
--- a/opendj-sdk/opends/src/messages/messages/admin_tool_zh_CN.properties
+++ b/opendj-sdk/opends/src/messages/messages/admin_tool_zh_CN.properties
@@ -21,7 +21,7 @@
 # CDDL HEADER END
 #
 #      Copyright 2006-2010 Sun Microsystems, Inc.
-#      Portions Copyright 2011-2012 ForgeRock AS
+#      Portions Copyright 2011-2013 ForgeRock AS
 
 
 
@@ -1557,6 +1557,7 @@
 INFO_CTRL_PANEL_DESCRIPTION_FRIENDLY_NAME=\u63cf\u8ff0
 INFO_CTRL_PANEL_POSTALADDRESS_FRIENDLY_NAME=\u5730\u5740
 INFO_CTRL_PANEL_UNIQUEMEMBER_FRIENDLY_NAME=\u7ec4\u6210\u5458
+INFO_CTRL_PANEL_MEMBER_FRIENDLY_NAME=\u7ec4\u6210\u5458
 INFO_CTRL_PANEL_MEMBERURL_FRIENDLY_NAME=LDAP URL
 INFO_CTRL_PANEL_C_FRIENDLY_NAME=\u56fd\u5bb6/\u5730\u533a
 INFO_CTRL_PANEL_DS_TARGET_GROUP_DN_FRIENDLY_NAME=\u52a8\u6001\u7ec4\u5f15\u7528 DN

--
Gitblit v1.10.0