View | Details | Raw Unified | Return to bug 24248
Collapse All | Expand All

(-)ldap.php.org
Lines 20-26 Link Here
20
    require_once ('Net/LDAP2.php');
20
    require_once ('Net/LDAP2.php');
21
              // Building user DN
21
              // Building user DN
22
              -    $userDN = str_replace('%login', $_SESSION['username'], $rcmail->config->get('password_ldap_userDN_mask'));
22
              -    $userDN = str_replace('%login', $_SESSION['username'], $rcmail->config->get('password_ldap_userDN_mask'));
23
              +    if (strstr($rcmail->config->get('password_ldap_userDN_mask'), '*')){
23
              +    if (strstr($rcmail->config->get('password_ldap_userDN_mask'), '*')){
24
              +	if ($rcmail->config->get('password_ldap_host') == NULL){
24
              +	if ($rcmail->config->get('password_ldap_host') == NULL){
25
              +	    $ldapHost = "localhost";
25
              +	    $ldapHost = "localhost";
26
              +	} else {
26
              +	} else {
27
              +	    $ldapHost = $rcmail->config->get('password_ldap_host');
27
              +	    $ldapHost = $rcmail->config->get('password_ldap_host');
28
              +	}
28
              +	}
29
              +	if ($rcmail->config->get('password_ldap_port') == NULL){
29
              +	if ($rcmail->config->get('password_ldap_port') == NULL){
30
              +	    $ldapPort = 389;
30
              +	    $ldapPort = 389;
31
              +	} else {
31
              +	} else {
32
              +	    $ldapPort = $rcmail->config->get('password_ldap_port');
32
              +	    $ldapPort = $rcmail->config->get('password_ldap_port');
33
              +	}
33
              +	}
34
              +	$ds = ldap_connect($ldapHost, $ldapPort);
34
              +	$ds = ldap_connect($ldapHost, $ldapPort);
35
              +	if (!$ds){
35
              +	if (!$ds){
36
              +	    return PASSWORD_CONNECT_ERROR;
36
              +	    return PASSWORD_CONNECT_ERROR;
37
              +	}
37
              +	}
38
              +	$br = ldap_bind($ds);
38
              +	$br = ldap_bind($ds);
39
              +	if (!$br){
39
              +	if (!$br){
40
              +	    return PASSWORD_CONNECT_ERROR;
40
              +	    return PASSWORD_CONNECT_ERROR;
41
              +	}
41
              +	}
42
              +	$nameParts = explode('@', $_SESSION['username']);
42
              +	$nameParts = explode('@', $_SESSION['username']);
43
              +	$ldapFilter = "(uid=$nameParts[0])";
43
              +	$ldapFilter = "(uid=$nameParts[0])";
44
              +	$ldapAttr = array("dn");
44
              +	$ldapAttr = array("dn");
45
              +	$sr = ldap_search($ds, $rcmail->config->get('password_ldap_basedn'), $ldapFilter, $ldapAttr);
45
              +	$sr = ldap_search($ds, $rcmail->config->get('password_ldap_basedn'), $ldapFilter, $ldapAttr);
46
              +	if ($sr){
46
              +	if ($sr){
47
              +	    $ldapRes = ldap_get_entries($ds, $sr);
47
              +	    $ldapRes = ldap_get_entries($ds, $sr);
48
              +	    $userDN = $ldapRes[0]["dn"];
48
              +	    $userDN = $ldapRes[0]["dn"];
49
              +	} else {
49
              +	} else {
50
              +	    return PASSWORD_CONNECT_ERROR;
50
              +	    return PASSWORD_CONNECT_ERROR;
51
              +	}
51
              +	}
52
              +	ldap_close($ds);
52
              +	ldap_close($ds);
53
              +    } else {
53
              +    } else {
54
              +	$userDN = str_replace('%login', $_SESSION['username'], $rcmail->config->get('password_ldap_userDN_mask'));
54
              +	$userDN = str_replace('%login', $_SESSION['username'], $rcmail->config->get('password_ldap_userDN_mask'));
55
              +    }
55
              +    }
56
                   $parts = explode('@', $_SESSION['username']);
56
                   $parts = explode('@', $_SESSION['username']);
57
                   if (count($parts) == 2)
57
                   if (count($parts) == 2)

Return to bug 24248