diff --git a/controllers/add_user.php b/controllers/add_user.php index 876fd14..b3a1f38 100644 --- a/controllers/add_user.php +++ b/controllers/add_user.php @@ -30,12 +30,9 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3); ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0); - // Authentification avec le token de session - $token = base64_decode($_SESSION['ldap_token']); - list($ldap_user, $ldap_password) = explode(':', $token); - $ldap_user = "CN=$ldap_user,CN=Users,DC=epul3a,DC=local"; + $ldap_user = "CN=" . $_SESSION['user_pseudo'] . ",CN=Users,DC=epul3a,DC=local"; - if (!@ldap_bind($ldapconn, $ldap_user, $ldap_password)) { + if (!@ldap_bind($ldapconn, $ldap_user, $_SESSION['password'])) { die("Could not bind to LDAP server: " . ldap_error($ldapconn)); } @@ -51,6 +48,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { 'mail' => $email, 'userPassword' => $password, 'samAccountName' => $samAccountName, + // 'userAccountControl' => "544", // Activer le compte 'objectClass' => ['top', 'person', 'organizationalPerson', 'user'] ]; diff --git a/controllers/auth.php b/controllers/auth.php index d88a62c..bad70cd 100644 --- a/controllers/auth.php +++ b/controllers/auth.php @@ -23,7 +23,7 @@ class AuthController $_SESSION['login'] = true; $_SESSION['user_pseudo'] = $_POST['user_pseudo']; $_SESSION['is_admin'] = $result['is_admin']; - $_SESSION['ldap_token'] = base64_encode($_POST['user_pseudo'] . ':' . $_POST['user_password']); + $_SESSION['password'] = $_POST['user_password']; header('Location: /index.php'); exit; } else { diff --git a/controllers/controllerAdmin.php b/controllers/controllerAdmin.php index 9beed91..08b79ae 100644 --- a/controllers/controllerAdmin.php +++ b/controllers/controllerAdmin.php @@ -5,9 +5,8 @@ function listAllOU() session_start(); } - // Vérifier si le token est présent dans la session - if (!isset($_SESSION['ldap_token'])) { - die("Token d'authentification manquant. Veuillez vous reconnecter."); + if (!isset($_SESSION['user_pseudo'])) { + die("Nom utilisateur manquant. Veuillez vous reconnecter."); } $ldapconn = ldap_connect("ldap://intranet.epul3a.local") @@ -16,20 +15,9 @@ function listAllOU() ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3); ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0); - // Décoder le token et extraire les informations - $token = base64_decode($_SESSION['ldap_token']); - if ($token === false) { - die("Token d'authentification invalide."); - } + $ldap_user = "CN=" . $_SESSION['user_pseudo'] . ",CN=Users,DC=epul3a,DC=local"; - list($ldap_user, $ldap_password) = explode(':', $token); - if (count(explode(':', $token)) !== 2) { - die("Format de token invalide."); - } - - $ldap_user = "CN=$ldap_user,CN=Users,DC=epul3a,DC=local"; - - if (!@ldap_bind($ldapconn, $ldap_user, $ldap_password)) { + if (!@ldap_bind($ldapconn, $ldap_user, $_SESSION['password'])) { die("Could not bind to LDAP server: " . ldap_error($ldapconn)); } @@ -56,3 +44,49 @@ function listAllOU() 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 +} diff --git a/controllers/logout.php b/controllers/logout.php new file mode 100644 index 0000000..3c3d229 --- /dev/null +++ b/controllers/logout.php @@ -0,0 +1,5 @@ + + +
| Nom | +OU | +Actions | +|
|---|---|---|---|
| $name | +$ou | ++ + + | +
Vous pouvez consulter votre profil.
"; + echo "