roundcubemail/plugins/password/drivers/ldap_simple.php
function search_userdn($rcmail, $ds)
    {
        $search_user   = $rcmail->config->get('password_ldap_searchDN');
        $search_pass   = $rcmail->config->get('password_ldap_searchPW');
        $search_base   = $rcmail->config->get('password_ldap_search_base');
        $search_filter = $rcmail->config->get('password_ldap_search_filter');

        if (empty($search_filter)) {
            return false;
        }

        $this->_debug("C: Bind " . ($search_user ? $search_user : '[anonymous]'));

        // Bind
        if (!ldap_bind($ds, $search_user, $search_pass)) {
            $this->_debug("S: ".ldap_error($ds));
            return false;
        }

        $this->_debug("S: OK");

        $search_base   = rcube_ldap_password::substitute_vars($search_base);
        $search_filter = rcube_ldap_password::substitute_vars($search_filter);

        $this->_debug("C: Search $search_base for $search_filter");

        // Search for the DN
        if (!$sr = ldap_search($ds, $search_base, $search_filter)) {
            $this->_debug("S: ".ldap_error($ds));
            return false;
        }

        $found = ldap_count_entries($ds, $sr);

        $this->_debug("S: OK [found $found records]");

        // If no or more entries were found, return false
        if ($found != 1) {
            return false;
        }

        return ldap_get_dn($ds, ldap_first_entry($ds, $sr));
    }
function search_userdn($rcmail, $ds)
    {
        $search_user   = $rcmail->config->get('password_ldap_searchDN');
        $search_pass   = $rcmail->config->get('password_ldap_searchPW');
        $search_base   = $rcmail->config->get('password_ldap_search_base');
        $search_filter = $rcmail->config->get('password_ldap_search_filter');

        if (empty($search_filter)) {
            return false;
        }

        $this->_debug("C: Bind " . ($search_user ? $search_user : '[anonymous]'));

        // Bind
        if (!ldap_bind($ds, $search_user, $search_pass)) {
            $this->_debug("S: ".ldap_error($ds));
            return false;
        }

        $this->_debug("S: OK");

        $search_base   = rcube_ldap_password::substitute_vars($search_base);
        $search_filter = rcube_ldap_password::substitute_vars($search_filter);

        $this->_debug("C: Search $search_base for $search_filter");

        // Search for the DN
        if (!$sr = ldap_search($ds, $search_base, $search_filter)) {
            $this->_debug("S: ".ldap_error($ds));
            return false;
        }

        $found = ldap_count_entries($ds, $sr);

        $this->_debug("S: OK [found $found records]");

        // If no or more entries were found, return false
        if ($found != 1) {
            return false;
        }

        return ldap_get_dn($ds, ldap_first_entry($ds, $sr));
    }
function search_userdn ( $ rcmail , $ ds ) { $ search_user = $ rcmail -> config -> get ( 'password_ldap_searchDN' ) ; $ search_pass = $ rcmail -> config -> get ( 'password_ldap_searchPW' ) ; $ search_base = $ rcmail -> config -> get ( 'password_ldap_search_base' ) ; $ search_filter = $ rcmail -> config -> get ( 'password_ldap_search_filter' ) ; if ( empty ( $ search_filter ) ) { return false ; } $ this -> _debug ( "C: Bind " . ( $ search_user ? $ search_user : '[anonymous]' ) ) ; // Bind if ( ! ldap_bind ( $ ds , $ search_user , $ search_pass ) ) { $ this -> _debug ( "S: " . ldap_error ( $ ds ) ) ; return false ; } $ this -> _debug ( "S: OK" ) ; $ search_base = rcube_ldap_password :: substitute_vars ( $ search_base ) ; $ search_filter = rcube_ldap_password :: substitute_vars ( $ search_filter ) ; $ this -> _debug ( "C: Search $search_base for $search_filter" ) ; // Search for the DN if ( ! $ sr = ldap_search ( $ ds , $ search_base , $ search_filter ) ) { $ this -> _debug ( "S: " . ldap_error ( $ ds ) ) ; return false ; } $ found = ldap_count_entries ( $ ds , $ sr ) ; $ this -> _debug ( "S: OK [found $found records]" ) ; // If no or more entries were found, return false if ( $ found != 1 ) { return false ; } return ldap_get_dn ( $ ds , ldap_first_entry ( $ ds , $ sr ) ) ; }
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