]> git.sur5r.net Git - openldap/commitdiff
don't list (other) structural classes
authorPierangelo Masarati <ando@openldap.org>
Thu, 11 Jan 2007 20:57:43 +0000 (20:57 +0000)
committerPierangelo Masarati <ando@openldap.org>
Thu, 11 Jan 2007 20:57:43 +0000 (20:57 +0000)
servers/slapd/overlays/dynlist.c

index 100afb1b402a1572cccab194e6e41d8367650a21..cf461b6bc0c8a166f0ee162b86520f8432747c58 100644 (file)
@@ -198,7 +198,8 @@ dynlist_sc_update( Operation *op, SlapReply *rs )
 
        for ( a = rs->sr_entry->e_attrs; a != NULL; a = a->a_next ) {
                BerVarray       vals, nvals = NULL;
-               int             i, j;
+               int             i, j,
+                               is_oc = a->a_desc == slap_schema.si_ad_objectClass;
 
                /* if attribute is not requested, skip it */
                if ( rs->sr_attrs == NULL ) {
@@ -247,6 +248,14 @@ dynlist_sc_update( Operation *op, SlapReply *rs )
                }
 
                for ( i = 0, j = 0; !BER_BVISNULL( &a->a_vals[i] ); i++ ) {
+                       if ( is_oc ) {
+                               ObjectClass     *soc = oc_bvfind( &a->a_vals[i] );
+
+                               if ( soc->soc_kind == LDAP_SCHEMA_STRUCTURAL ) {
+                                       continue;
+                               }
+                       }
+
                        if ( access_allowed( op, rs->sr_entry, a->a_desc,
                                                &a->a_nvals[i], ACL_READ, &acl_state ) )
                        {