4.1.8.2.6 IsMatchedGroup

 procedure IsMatchedGroup(
   w: DSName,
   op: REVERSE_MEMBERSHIP_OPERATION_TYPE,
   limitingDomain: DSName): boolean

Informative summary of behavior: The IsMatchedGroup procedure checks whether an object should be included in the result for the specified IDL_DRSGetMemberships operation.

  
 limitToDomain, filteroutBuiltin, result: boolean
 w: DSName
  
 limitToDomain := (op ≠ RevMembGetUniversalGroups) and
     (limitingDomain ≠ null)
  
 filteroutBuiltin := (op ≠ RevMembGetAliasMembership)
  
 result := (GROUP_TYPE_SECURITY_ENABLED in w!groupType) 
     and ((not limitToDomain) or (limitingDomain = DomainOf(w))) 
     and ((not filteroutBuiltin) or (not IsBuiltinPrincipal(w.sid))) 
     and ((op ≠ RevMembGetGroupsForUser) 
          or (w!groupType ∩ {GROUP_TYPE_RESOURCE_GROUP,
                             GROUP_TYPE_APP_BASIC_GROUP,
                             GROUP_TYPE_APP_QUERY_GROUP} = {})) 
     and ((op ≠ RevMembGetAliasMembership) 
          or (w!groupType ∩ {GROUP_TYPE_RESOURCE_GROUP, 
                             GROUP_TYPE_APP_BASIC_GROUP,
                             GROUP_TYPE_APP_QUERY_GROUP} ≠ {})) 
     and ((op ≠ RevMembGetAccountGroups) 
           or (GROUP_TYPE_ACCOUNT_GROUP in w!groupType))
     and ((op ≠ RevMembGetResouceGroups) 
          or (GROUP_TYPE_RESOURCE_GROUP in w!groupType)) 
     and ((op ≠ RevMembGetUniversalGroups) 
          or (GROUP_TYPE_UNIVERSAL_GROUP in w!groupType))
     and ((op ≠ RevMembGlobalGroupsNonTransitive) 
          or (GROUP_TYPE_ACCOUNT_GROUP in w!groupType))
  
 return result