roundcubemail/plugins/password/drivers/ldap.php
function search_userdn($rcmail)
    {
        $binddn = $rcmail->config->get('password_ldap_searchDN');
        $bindpw = $rcmail->config->get('password_ldap_searchPW');

        $ldapConfig = array (
            'basedn'    => $rcmail->config->get('password_ldap_basedn'),
            'host'      => $rcmail->config->get('password_ldap_host', 'localhost'),
            'port'      => $rcmail->config->get('password_ldap_port', '389'),
            'starttls'  => $rcmail->config->get('password_ldap_starttls'),
            'version'   => $rcmail->config->get('password_ldap_version', '3'),
        );

        // allow anonymous searches
        if (!empty($binddn)) {
            $ldapConfig['binddn'] = $binddn;
            $ldapConfig['bindpw'] = $bindpw;
        }

        $ldap = Net_LDAP2::connect($ldapConfig);

        if (is_a($ldap, 'PEAR_Error')) {
            return '';
        }

        $base   = self::substitute_vars($rcmail->config->get('password_ldap_search_base'));
        $filter = self::substitute_vars($rcmail->config->get('password_ldap_search_filter'));
        $options = array (
            'scope' => 'sub',
            'attributes' => array(),
        );

        $result = $ldap->search($base, $filter, $options);
        if (is_a($result, 'PEAR_Error') || ($result->count() != 1)) {
            $ldap->done();
            return '';
        }
        $userDN = $result->current()->dn();
        $ldap->done();

        return $userDN;
    }
function search_userdn($rcmail)
    {
        $binddn = $rcmail->config->get('password_ldap_searchDN');
        $bindpw = $rcmail->config->get('password_ldap_searchPW');

        $ldapConfig = array (
            'basedn'    => $rcmail->config->get('password_ldap_basedn'),
            'host'      => $rcmail->config->get('password_ldap_host', 'localhost'),
            'port'      => $rcmail->config->get('password_ldap_port', '389'),
            'starttls'  => $rcmail->config->get('password_ldap_starttls'),
            'version'   => $rcmail->config->get('password_ldap_version', '3'),
        );

        // allow anonymous searches
        if (!empty($binddn)) {
            $ldapConfig['binddn'] = $binddn;
            $ldapConfig['bindpw'] = $bindpw;
        }

        $ldap = Net_LDAP2::connect($ldapConfig);

        if (is_a($ldap, 'PEAR_Error')) {
            return '';
        }

        $base   = self::substitute_vars($rcmail->config->get('password_ldap_search_base'));
        $filter = self::substitute_vars($rcmail->config->get('password_ldap_search_filter'));
        $options = array (
            'scope' => 'sub',
            'attributes' => array(),
        );

        $result = $ldap->search($base, $filter, $options);
        if (is_a($result, 'PEAR_Error') || ($result->count() != 1)) {
            $ldap->done();
            return '';
        }
        $userDN = $result->current()->dn();
        $ldap->done();

        return $userDN;
    }
function search_userdn ( $ rcmail ) { $ binddn = $ rcmail -> config -> get ( 'password_ldap_searchDN' ) ; $ bindpw = $ rcmail -> config -> get ( 'password_ldap_searchPW' ) ; $ ldapConfig = array ( 'basedn' => $ rcmail -> config -> get ( 'password_ldap_basedn' ) , 'host' => $ rcmail -> config -> get ( 'password_ldap_host' , 'localhost' ) , 'port' => $ rcmail -> config -> get ( 'password_ldap_port' , '389' ) , 'starttls' => $ rcmail -> config -> get ( 'password_ldap_starttls' ) , 'version' => $ rcmail -> config -> get ( 'password_ldap_version' , '3' ) , ) ; // allow anonymous searches if ( ! empty ( $ binddn ) ) { $ ldapConfig [ 'binddn' ] = $ binddn ; $ ldapConfig [ 'bindpw' ] = $ bindpw ; } $ ldap = Net_LDAP2 :: connect ( $ ldapConfig ) ; if ( is_a ( $ ldap , 'PEAR_Error' ) ) { return '' ; } $ base = self :: substitute_vars ( $ rcmail -> config -> get ( 'password_ldap_search_base' ) ) ; $ filter = self :: substitute_vars ( $ rcmail -> config -> get ( 'password_ldap_search_filter' ) ) ; $ options = array ( 'scope' => 'sub' , 'attributes' => array ( ) , ) ; $ result = $ ldap -> search ( $ base , $ filter , $ options ) ; if ( is_a ( $ result , 'PEAR_Error' ) || ( $ result -> count ( ) != 1 ) ) { $ ldap -> done ( ) ; return '' ; } $ userDN = $ result -> current ( ) -> dn ( ) ; $ ldap -> done ( ) ; return $ userDN ; }
Bind with searchDN and searchPW and search for the user's DN.
Use search_base and search_filter defined in config file.
Return the found DN.
Bind with searchDN and searchPW and search for the user s DN . Use search_base and search_filter defined in config file . Return the found DN .