We want to find objects for which the groupType attribute has at least
one of GROUP_TYPE_ACCOUNT_GROUP and GROUP_TYPE_UNIVERSAL_GROUP set. For
this the OR comparator is perfectly suited. It produces a true result if
at least one set bit is shared between both operands.
Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
filter = talloc_asprintf(mem_ctx,
"(&(objectClass=group)"
"(groupType:"LDB_OID_COMPARATOR_AND":=%u)"
- "(|(groupType:"LDB_OID_COMPARATOR_AND":=%u)"
- "(groupType:"LDB_OID_COMPARATOR_AND":=%u)))",
+ "(groupType:"LDB_OID_COMPARATOR_OR":=%u))",
GROUP_TYPE_SECURITY_ENABLED,
- GROUP_TYPE_ACCOUNT_GROUP,
- GROUP_TYPE_UNIVERSAL_GROUP);
+ GROUP_TYPE_ACCOUNT_GROUP | GROUP_TYPE_UNIVERSAL_GROUP);
break;
case TOKEN_GROUPS_NO_GC_ACCEPTABLE:
case TOKEN_GROUPS: