getAllOUs(); $admin_ous = $_SESSION['admin_ous'] ?? []; // Filtrer les OUs disponibles selon les droits de l'admin $allowed_ous = array_intersect($available_ous, $admin_ous); if ($_SERVER['REQUEST_METHOD'] === 'POST') { // Récupérer les données du formulaire $nom = $_POST['nom']; $prenom = $_POST['prenom']; $pseudo = $_POST['pseudo']; $email = $_POST['email']; $password = $_POST['password']; $role = $_POST['role']; $ou_dn = $_POST['ou']; // DN de l'OU sélectionnée // Valider les données (exemple simplifié) if (empty($nom) || empty($prenom) || empty($pseudo) || empty($email) || empty($password) || empty($ou_dn)) { die("Tous les champs sont obligatoires."); } // Connexion LDAP $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['sAMAccountName'] . ",CN=Users,DC=epul3a,DC=local"; if (!@ldap_bind($ldapconn, $ldap_user, $_SESSION['password'])) { die("Could not bind to LDAP server: " . ldap_error($ldapconn)); } $samAccountName = strtolower(substr($prenom, 0, 1) . $nom); // Générer le samAccountName // Créer l'utilisateur dans l'OU sélectionnée $user_dn = "CN=$pseudo,$ou_dn"; // DN du nouvel utilisateur $user_info = [ 'cn' => $pseudo, 'sn' => $nom, 'givenName' => $prenom, 'mail' => $email, 'userPassword' => $password, 'samAccountName' => $samAccountName, // 'userAccountControl' => "544", // Activer le compte 'objectClass' => ['top', 'person', 'organizationalPerson', 'user'] ]; // Ajout de l'utilisateur if (@ldap_add($ldapconn, $user_dn, $user_info)) { echo "Utilisateur créé avec succès dans l'OU : $ou_dn"; } else { echo "Erreur lors de la création de l'utilisateur : " . ldap_error($ldapconn); } ldap_close($ldapconn); }