0) { foreach ($entries as $key => $entry) { if (is_numeric($key)) { $ous[] = $entry; // Ajouter chaque OU au tableau } } } } else { echo "Error: " . ldap_error($ldapconn); } ldap_close($ldapconn); return $ous; // Retourner le tableau des OUs } function listAllUsers() { if (session_status() == PHP_SESSION_NONE) { session_start(); } $ldapconn = ldap_connect("ldap://intranet.epul3a.local") or die("Could not connect to LDAP server."); ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3); ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0); $ldap_user = "CN=" . $_SESSION['user_pseudo'] . ",CN=Users,DC=epul3a,DC=local"; if (!@ldap_bind($ldapconn, $ldap_user, $_SESSION['password'])) { die("Could not bind to LDAP server: " . ldap_error($ldapconn)); } $searchBase = "DC=epul3a,DC=local"; $filter = "(objectClass=user)"; $attributes = array("cn", "sn", "givenName", "mail", "distinguishedName"); $result = @ldap_search($ldapconn, $searchBase, $filter, $attributes); $users = []; if ($result) { $entries = ldap_get_entries($ldapconn, $result); if ($entries['count'] > 0) { foreach ($entries as $key => $entry) { if (is_numeric($key)) { // Extraire l'OU du DN preg_match('/OU=([^,]+)/', $entry['distinguishedname'][0], $matches); $ou = isset($matches[1]) ? $matches[1] : 'Users'; $entry['ou'] = $ou; // Ajouter l'OU à l'entrée de l'utilisateur $users[] = $entry; // Ajouter chaque utilisateur au tableau } } } } else { echo "Error: " . ldap_error($ldapconn); } ldap_close($ldapconn); return $users; // Retourner le tableau des utilisateurs }