public function _search_users($search, $exact = false) { if ($exact == false) { if ($search == '*') { $filter = 'objectClass=mozComPerson'; } else { $terms = array_map("escape_ldap_filter_value", preg_split('/\\s+/', trim($search))); $filter = "(objectClass=mozComPerson)"; foreach ($terms as $escaped_term) { $subfilter = ""; foreach ($this->search_fields as $field) { $subfilter .= "({$field}=*{$escaped_term}*)"; } $filter .= "(|{$subfilter})"; } $filter = "(&{$filter})"; } } else { $escaped = escape_ldap_filter_value($search); $filter = "(mail={$escaped})"; } return $this->query_users($filter, 'dc=mozilla', $this->fields); }
public function _search_users($search, $exact = false) { $escaped = escape_ldap_filter_value($search); if ($exact == false) { $filter = $search == '*' ? 'objectClass=mozComPerson' : "(&(|(cn=*{$escaped}*)(bugzillaEmail=*{$escaped}*)(mail=*{$escaped}*)(emailAlias=*{$escaped}*)(im=*{$escaped}*)(physicalDeliveryOfficeName=*{$escaped}*)(description=*{$escaped}*)(telephoneNumber=*{$escaped}*)(mobile=*{$escaped}*)(b2gNumber=*{$escaped}*))(objectClass=mozComPerson))"; } else { $filter = "(mail={$escaped})"; } return $this->query_users($filter, 'dc=mozilla', $this->fields); }