From 80523e58ccb629f3e4bde4366641e9befba24a36 Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Wed, 11 Apr 2007 22:39:23 +0000
Subject: [PATCH] Implement support for virtual static groups, which are entries which appear to be static groups but get their membership information from another group and present it through a virtual attribute.  This can make it possible to use a dynamic group to actually define the set of membership, but still support applications which can only interact with static groups.

---
 opends/src/server/org/opends/server/extensions/StaticGroup.java |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/opends/src/server/org/opends/server/extensions/StaticGroup.java b/opends/src/server/org/opends/server/extensions/StaticGroup.java
index 64871ad..ee7fda9 100644
--- a/opends/src/server/org/opends/server/extensions/StaticGroup.java
+++ b/opends/src/server/org/opends/server/extensions/StaticGroup.java
@@ -79,9 +79,6 @@
 public class StaticGroup
        extends Group
 {
-
-
-
   // The attribute type used to hold the membership list for this group.
   private AttributeType memberAttributeType;
 
@@ -241,7 +238,8 @@
     // FIXME -- This needs to exclude enhanced groups once we have support for
     // them.
     String filterString =
-         "(|(objectClass=groupOfNames)(objectClass=groupOfUniqueNames))";
+         "(&(|(objectClass=groupOfNames)(objectClass=groupOfUniqueNames))" +
+            "(!(objectClass=ds-virtual-static-group))";
     return SearchFilter.createFilterFromString(filterString);
   }
 
@@ -257,6 +255,13 @@
 
     // FIXME -- This needs to exclude enhanced groups once we have support for
     //them.
+    ObjectClass virtualStaticGroupClass =
+         DirectoryConfig.getObjectClass(OC_VIRTUAL_STATIC_GROUP, true);
+    if (entry.hasObjectClass(virtualStaticGroupClass))
+    {
+      return false;
+    }
+
     ObjectClass groupOfNamesClass =
          DirectoryConfig.getObjectClass(OC_GROUP_OF_NAMES_LC, true);
     ObjectClass groupOfUniqueNamesClass =

--
Gitblit v1.10.0