diff --git a/html/includes/authentication/ldap.inc.php b/html/includes/authentication/ldap.inc.php index c55b54009..02c54931f 100644 --- a/html/includes/authentication/ldap.inc.php +++ b/html/includes/authentication/ldap.inc.php @@ -203,10 +203,16 @@ function update_user($user_id, $realname, $level, $can_modify_passwd, $email) { function get_membername($username) { - global $config; + global $config, $ds; if ($config['auth_ldap_groupmembertype'] == 'fulldn') { $membername = $config['auth_ldap_prefix'].$username.$config['auth_ldap_suffix']; } + elseif ($config['auth_ldap_groupmembertype'] == 'puredn') { + $filter = '('.$config['auth_ldap_attr']['uid'].'='.$username.')'; + $search = ldap_search($ds, $config['auth_ldap_groupbase'], $filter); + $entries = ldap_get_entries($ds, $search); + $membername = $entries[0]['dn']; + } else { $membername = $username; } diff --git a/includes/defaults.inc.php b/includes/defaults.inc.php index 1c209b785..d25e6b445 100644 --- a/includes/defaults.inc.php +++ b/includes/defaults.inc.php @@ -496,6 +496,7 @@ $config['auth_ldap_prefix'] = 'uid='; $config['auth_ldap_suffix'] = ',ou=People,dc=example,dc=com'; $config['auth_ldap_group'] = 'cn=groupname,ou=groups,dc=example,dc=com'; +$config['auth_ldap_attr']['uid'] = "uid"; $config['auth_ldap_groupbase'] = 'ou=group,dc=example,dc=com'; $config['auth_ldap_groups']['admin']['level'] = 10; $config['auth_ldap_groups']['pfy']['level'] = 7;