PMF_Ldap::getLdapData PHP Method

getLdapData() private method

Returns specific data from LDAP
private getLdapData ( string $username, string $data ) : string
$username string Username
$data string MapKey
return string
    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];
    }