alecpl
2009-08-24 7b865083e71471c2c6f9e039b42e6e8cc4ac5657
- Password/LDAP: support %name, %domain in userdn (#1486055)


2 files modified
15 ■■■■ changed files
plugins/password/config.inc.php.dist 7 ●●●● patch | view | raw | blame | history
plugins/password/drivers/ldap.php 8 ●●●●● patch | view | raw | blame | history
plugins/password/config.inc.php.dist
@@ -87,8 +87,11 @@
$rcmail_config['password_ldap_adminPW'] = null;
// LDAP user DN mask
// The user's DN is mandatory and as we only have his login, we need to re-create his DN using a mask
// '%login' will be replace by the current roundcube user's login
// The user's DN is mandatory and as we only have his login,
// we need to re-create his DN using a mask
// '%login' will be replaced by the current roundcube user's login
// '%name' will be replaced by the current roundcube user's name part
// '%domain' will be replaced by the current roundcube user's domain part
// Exemple: 'uid=%login,ou=people,dc=exemple,dc=com'
$rcmail_config['password_ldap_userDN_mask'] = 'uid=%login,ou=people,dc=exemple,dc=com';
plugins/password/drivers/ldap.php
@@ -21,6 +21,14 @@
    
    // Building user DN
    $userDN = str_replace('%login', $_SESSION['username'], $rcmail->config->get('password_ldap_userDN_mask'));
    $parts = explode('@', $_SESSION['username']);
    if (count($parts) == 2)
    {
        $userDN = str_replace('%name', $parts[0], $userDN);
        $userDN = str_replace('%domain', $parts[1], $userDN);
    }
    if (empty($userDN)) {return PASSWORD_CONNECT_ERROR;}
    
    // Connection Method