69 lines
2.2 KiB
PHP
69 lines
2.2 KiB
PHP
<?php
|
|
session_start();
|
|
|
|
if (!isset($_SESSION["login"]) || !$_SESSION["is_admin"]) {
|
|
header("Location: ../index.php");
|
|
exit;
|
|
}
|
|
|
|
$ldapAuth = new LDAPAuth();
|
|
$available_ous = $ldapAuth->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);
|
|
}
|