ITS#9121 fix filtered memberOf

Broken in 2c0499ae4e adding nesting
This commit is contained in:
Howard Chu 2020-11-03 01:18:32 +00:00
parent bfeaec664f
commit 6b0fc9e034

View file

@ -1699,16 +1699,19 @@ dynlist_search( Operation *op, SlapReply *rs )
if ( dlm->dlm_memberOf_ad ) {
int want = 0;
/* with nesting, filter attributes also require nestlink */
if ( dlm->dlm_memberOf_nested ) {
/* is attribute in filter? */
if ( ad_infilter( dlm->dlm_memberOf_ad, op->ors_filter )) {
want |= WANT_MEMBEROF;
/* with nesting, filter attributes also require nestlink */
if ( dlm->dlm_memberOf_nested ) {
/* WANT_ flags have inverted meaning here:
* to satisfy (memberOf=) filter, we need to also
* find all subordinate groups. No special
* treatment is needed for (member=) since we
* already search all group entries.
*/
if ( ad_infilter( dlm->dlm_memberOf_ad, op->ors_filter ))
want |= WANT_MEMBER;
}
}
/* if attribute is not requested, skip it */