function get_userlist() { global $config, $ds; $userlist = array(); $userhash = array(); $ldap_groups = get_group_list(); foreach ($ldap_groups as $ldap_group) { $group_cn = get_cn($ldap_group); $search = ldap_search($ds, $config['auth_ad_base_dn'], "(cn={$group_cn})", array('member')); $entries = ldap_get_entries($ds, $search); foreach ($entries[0]['member'] as $member) { $member_cn = get_cn($member); $search = ldap_search($ds, $config['auth_ad_base_dn'], "(cn={$member_cn})", array('sAMAccountname', 'displayName', 'objectSID', 'mail')); $results = ldap_get_entries($ds, $search); foreach ($results as $result) { if (isset($result['samaccountname'][0])) { $userid = preg_replace('/.*-(\\d+)$/', '$1', sid_from_ldap($result['objectsid'][0])); // don't make duplicates, user may be member of more than one group $userhash[$result['samaccountname'][0]] = array('realname' => $result['displayName'][0], 'user_id' => $userid, 'email' => $result['mail'][0]); } } } } foreach (array_keys($userhash) as $key) { $userlist[] = array('username' => $key, 'realname' => $userhash[$key]['realname'], 'user_id' => $userhash[$key]['user_id'], 'email' => $userhash[$key]['email']); } return $userlist; }
function get_userlist() { global $config, $ldap_connection; $userlist = array(); $userhash = array(); $ldap_groups = get_group_list(); foreach ($ldap_groups as $ldap_group) { $search_filter = "(memberOf={$ldap_group})"; if ($config['auth_ad_user_filter']) { $search_filter = "(&{$config['auth_ad_user_filter']}{$search_filter})"; } $search = ldap_search($ldap_connection, $config['auth_ad_base_dn'], $search_filter, array('samaccountname', 'displayname', 'objectsid', 'mail')); $results = ldap_get_entries($ldap_connection, $search); foreach ($results as $result) { if (isset($result['samaccountname'][0])) { $userid = preg_replace('/.*-(\\d+)$/', '$1', sid_from_ldap($result['objectsid'][0])); // don't make duplicates, user may be member of more than one group $userhash[$result['samaccountname'][0]] = array('realname' => $result['displayName'][0], 'user_id' => $userid, 'email' => $result['mail'][0]); } } } foreach (array_keys($userhash) as $key) { $userlist[] = array('username' => $key, 'realname' => $userhash[$key]['realname'], 'user_id' => $userhash[$key]['user_id'], 'email' => $userhash[$key]['email']); } return $userlist; }