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;