private function getLdapData($username, $data)
{
if (!array_key_exists($data, $this->_ldapConfig['ldap_mapping'])) {
$this->error = sprintf('The requested datafield "%s" does not exist in LDAP mapping configuration.', $data);
return '';
}
$filter = sprintf('(%s=%s)', $this->_ldapConfig['ldap_mapping']['username'], $this->quote($username));
if (true === $this->_ldapConfig['ldap_use_memberOf']) {
$filter = sprintf('(&%s(memberof=%s))', $filter, $this->_ldapConfig['ldap_mapping']['memberOf']);
}
$fields = array($this->_ldapConfig['ldap_mapping'][$data]);
$sr = ldap_search($this->ds, $this->base, $filter, $fields);
if (!$sr) {
$this->errno = ldap_errno($this->ds);
$this->error = sprintf('Unable to search for "%s" (Error: %s)', $username, ldap_error($this->ds));
}
$entryId = ldap_first_entry($this->ds, $sr);
if (!is_resource($entryId)) {
$this->errno = ldap_errno($this->ds);
$this->error = sprintf('Cannot get the value(s). Error: %s', ldap_error($this->ds));
}
$values = ldap_get_values($this->ds, $entryId, $fields[0]);
return $values[0];
}