Orientation graph

This commit is contained in:
Cédric COURALET 2023-09-05 09:10:15 +02:00
parent e82dd514bf
commit 046c6db073
2 changed files with 751 additions and 1 deletions

View File

@ -5,7 +5,7 @@
### Arrivées ### Arrivées
```mermaid ```mermaid
flowchart TD flowchart LR
start(" Admis ENSAE") --> Inscription("Inscription ENSAE") start(" Admis ENSAE") --> Inscription("Inscription ENSAE")
start-ipp("Admis Master Ip-Paris") --> Inscription-ipp(Inscription Ip-Paris) start-ipp("Admis Master Ip-Paris") --> Inscription-ipp(Inscription Ip-Paris)

View File

@ -0,0 +1,750 @@
<?php
// pour faire des tests à la main : https://administration-annuaire.ensae.fr/
error_reporting(E_ERROR | E_WARNING | E_PARSE);
header('Content-Type: text/html; charset=utf-8');
$valid_users = array(
'ensae\\tmouhtadi',
'ensae\\clagarde',
'ensae\\fhocde',
'ensae\\jmerat',
'ensae\\credentialsensae'
);
$current_user = strtolower( $_SERVER['REMOTE_USER'] );
if( !in_array($current_user, $valid_users) ) {
header("HTTP/1.1 401 Unauthorized");
exit("Vous n'êtes pas autorisé. Veuillez contacter le service Informatique.");
}
?>
<!DOCTYPE HTML>
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>
<?php
//##############constante###############
$id = $_POST['id']; // l id est recupere du site inscription en ligne celui ci est retourné sans être touché
//il faut simuler la date d'expiration dans l'AD et récupérer la valeur générée dans l'attribut (AccountExpires).
// le 30 juin 2024 pour une rentrée en 2022
// 30/06/2025
$DateExpiration = "133957944000000000";
$wifi = "CN=ClearPass-ETUDIANT,OU=Comptes de service,OU=Genes,DC=ensae,DC=fr";
$PromotionsENSAE = "CN=PromotionsENSAE,OU=Groupes,OU=Eleves,OU=ENSAE,OU=Genes,DC=ensae,DC=fr";
$MesDossiers = "CN=MesDossiers_Paradis,OU=Comptes et groupes systèmes,OU=Genes,DC=ensae,DC=fr";
// Les groupes doivent etre tous dans la meme OU et utiliser ce chemin :
$BaseGroupe = ",OU=Groupes,OU=Eleves,OU=ENSAE,OU=Genes,DC=ensae,DC=fr";
//changer simplement l année
$BaseUtilisateur = "OU=2023,OU=Utilisateurs,OU=Eleves,OU=ENSAE,OU=Genes,DC=ensae,DC=fr";
$datetime = date("d-m-Y H:i:s");
//#######################################
$EtudiantMail=$_POST['EtudiantMail'];
//alias email si on souhaite rajouter une adresse supplementaire
$alias=$_POST['alias'];
// ###################################################
//EtatCompte est utilise pour savoir si c est un nouveau compte ou un prolongement de compte 0 = Nouveau et 1 = Prolongement
if(empty($_POST['EtatCompte'])) {
$EtatCompte = 0;
} else {
$EtatCompte=$_POST['EtatCompte'];
}
// Variables pour connexion LDAPs
$ldapserver = "ldaps://172.16.110.10";
$ldapuser = "ensae\administrationannuai";
$ldappass = "************";
$ldapdn = "OU=Genes,DC=ensae,DC=fr";
if(isset($_POST['voie']))
$voie=$_POST['voie'];
if(isset($_POST['nom']))
$nom=$_POST['nom'];
else $nom="";
if(isset($_POST['prenom']))
$prenom=$_POST['prenom'];
else $prenom="";
// Si on souhaite ajouter la condition de l'appartenance a un groupe : if(empty($nom) OR empty($prenom) OR empty($voie))
if(empty($nom) OR empty($prenom))
{
if($EtatCompte == 0){
echo '<font color="red">Attention,un champ est vide, nous ne pouvons poursuivre la demande. </font>';
die();
}
} // on verifie le champ prénom
elseif (preg_match('/[\^£$%&*()}{@#~?><>,|=_\\\\\;+¬]/', $prenom))
{
echo 'Le champ prénom contient un caractère spécial.';// one or more of the 'special characters' found in $string
die();
}
elseif (preg_match('~[0-9]~', $prenom))
{
echo 'Le champ prénom contient un caractère spécial.';
die();
}
// on vérifie le champ nom
elseif (preg_match('/[\^£$%&*()}{@#~?><>,|=_\\\\\;+¬]/', $nom))
{
echo 'Le champ nom contient un caractère spécial.';
die();
}
elseif (preg_match('~[0-9]~', $nom))
{
echo 'Le champ nom contient un caractère spécial.';
die();
}
// sinon ...
else
{
$unwanted_array = array( 'Š'=>'S', 'š'=>'s', 'Ž'=>'Z', 'ž'=>'z', 'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E',
'Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I', 'Ï'=>'I', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U',
'Ú'=>'U', 'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B', 'ß'=>'Ss', 'à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'a', 'å'=>'a', 'æ'=>'a', 'ç'=>'c',
'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ë'=>'e', 'ì'=>'i', 'í'=>'i', 'î'=>'i', 'ï'=>'i', 'ð'=>'o', 'ñ'=>'n', 'ò'=>'o', 'ó'=>'o', 'ô'=>'o', 'õ'=>'o',
'ö'=>'o', 'ø'=>'o', 'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'ý'=>'y', 'þ'=>'b', 'ÿ'=>'y' );
// on supprime les espaces du prenom
//$prenom = preg_replace('/\s+/', '', $prenom);
// si le prenom contient un trait d'union
if (strpos($prenom, '-') !== false) {
// delimiteur trait d'union
$prenom1 = explode("-", $prenom);
$prenom1[0] = ucfirst(strtolower($prenom1[0]));
$prenom1[1] = ucfirst(strtolower($prenom1[1]));
$prenom = $prenom1[0].'-'.$prenom1[1];
//echo 'dans la boucle';
//echo $prenom;
} else {
$prenom = ucfirst(strtolower($prenom));
}
//$prenom = ucfirst(strtolower($prenom));
// Tout en MAJUSCULE en gardant les accents
$nom = mb_strtoupper($nom, 'UTF-8');
// On supprime les accents
$prenom2 = strtr( $prenom, $unwanted_array );
// on ne garde que les lettres du prenom
$prenom2 = preg_replace("/[^a-zA-Z]-/", "", $prenom2);
// on recupere le premier caractere du prénom
$FirstChar = $prenom2[0];
// on supprime les espaces du nom
$nom2 = preg_replace('/\s+/', '', $nom);
$nom2 = strtr( $nom2, $unwanted_array );
//$FirstChar = strtr( $FirstChar, $unwanted_array );
// On concatene premiere lettre prenom avec le nom
$login = $FirstChar.$nom2;
// on met tout en minuscule
$login = strtolower($login);
// on prend les 20 premiers caracteres
$login = substr($login,0,20);
// on ne garde que les lettres
$login = preg_replace("/[^a-zA-Z]/", "", $login);
// on supprime les accents, apostrophe et trait d'union :
$prenom_mail = preg_replace("/[^a-zA-Z]-/", "", $prenom2);
$prenom_mail = preg_replace('/\s+/', '', $prenom_mail);
$prenom_mail = str_replace("'", '', $prenom_mail);
$nom2_mail = preg_replace("/[^a-zA-Z]-/", "", $nom2);
$nom2_mail = str_replace("'", '', $nom2);
//SMTP PINCIPAL
$email = $prenom_mail.".".$nom2_mail;
$email = substr($email,0,64);
//$email = $email."@ensae-paristech.fr";
$email = $email."@ensae.fr";
$email = strtr( $email, $unwanted_array );
$email = strtolower($email);
// ALIAS
$alias = $prenom_mail.".".$nom2_mail."@ensae.fr";
$alias = strtr( $alias, $unwanted_array );
$alias = strtolower($alias);
// ON AFFICHE
$password = generateStrongPassword();
$N = count($voie);
/* echo "Bonjour ".$prenom." ".$nom ;
echo "</br>";
echo "Votre login est ".$login;
echo "</br>";
$password = generateStrongPassword();
echo "Votre mot de passe est : ".$password;
echo "</br>";
echo "Votre adresse email est ".$email;
echo "</br>";
$N = count($voie);
echo("Selection de $N voie(s): ");
echo "</br>";
for($i=0; $i < $N; $i++)
{
echo($voie[$i] . "<br>");
}
echo "</br>";
echo '</br><a href="#" OnClick="javascript:window.print()">Imprimer</a>';
foreach($voie as $value)
{
echo '<input type="hidden" name="voie[]" value="'. $value. '">';
} */
}
function generateStrongPassword($length = 12, $add_dashes = false, $available_sets = 'lud')
{
$sets = array();
if(strpos($available_sets, 'l') !== false)
$sets[] = 'abcdefghjkmnpqrstuvwxyz';
if(strpos($available_sets, 'u') !== false)
$sets[] = 'ABCDEFGHJKMNPQRSTUVWXYZ';
if(strpos($available_sets, 'd') !== false)
$sets[] = '23456789';
if(strpos($available_sets, 's') !== false)
$sets[] = '!@#$%&*?';
$all = '';
$password = '';
foreach($sets as $set)
{
$password .= $set[array_rand(str_split($set))];
$all .= $set;
}
$all = str_split($all);
for($i = 0; $i < $length - count($sets); $i++)
$password .= $all[array_rand($all)];
$password = str_shuffle($password);
if(!$add_dashes)
return $password;
$dash_len = floor(sqrt($length));
$dash_str = '';
while(strlen($password) > $dash_len)
{
$dash_str .= substr($password, 0, $dash_len) . '-';
$password = substr($password, $dash_len);
}
$dash_str .= $password;
return $dash_str;
}
$filter="(mail=$email)";
$FilterEmailExist="(mail=$EtudiantMail)";
$filter2="(samaccountname=$login)";
// Connexion LDAPs
$ldapconn = ldap_connect($ldapserver) or die("Could not connect to LDAP server.");
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
// ******************************************************
if($ldapconn)
{
// binding to ldap server
$ldapbind = ldap_bind($ldapconn, $ldapuser, $ldappass) or die ("Error trying to bind: ".ldap_error($ldapconn));
// verify binding
if ($ldapbind)
{
// echo "LDAP bind successful...<br /><br />";
//echo "</br>".$login;
//echo "</br>".$email;
// recherche par rapport a l email
$result = ldap_search($ldapconn, $ldapdn, $filter) or die ("Error in search query: ".ldap_error($ldapconn));
// recherche par rapport au login
$result2 = ldap_search($ldapconn, $ldapdn, $filter2) or die ("Error in search query: ".ldap_error($ldapconn));
$SearchMailExist = ldap_search($ldapconn, $ldapdn, $FilterEmailExist) or die ("Error in search query: ".ldap_error($ldapconn));
$data = ldap_get_entries($ldapconn, $result);
$data2 = ldap_get_entries($ldapconn, $result2);
//echo "</br>".$data2['count'];
//echo "</br>".$data['count'];
$ResultMailExist = ldap_get_entries($ldapconn, $SearchMailExist);
// SHOW ALL DATA
// echo '<h1>Dump all data</h1><pre>';
//print_r($ResultMailExist);
//echo '</pre>';
//echo $data[0]["mail"];
// iterate over array and print data for each entry
for ($i=0; $i<$data["count"]; $i++)
{
//echo "dn is: ". $data[$i]["dn"] ."<br />";
//echo "User: ". $data[$i]["cn"][0] ."<br />";
if(isset($data[$i]["mail"][0]))
{
$mail = $data[$i]["mail"][0];
//echo '<h1>LE COMPTE EXISTE</h1>';
//echo "Le mail ". $mail ." existe. <br /><br />";
}
}
for ($j=0; $j<$data2["count"]; $j++)
{
if(isset($data2[$j]["samaccountname"][0]))
{
$logon = $data2[$j]["samaccountname"][0];
//echo '<h1>LE COMPTE exsite_email</h1>';
//echo "Le compte ". $logon ." exsite. <br /><br />";
}
}
// on compte le nombre d email identique dans l'AD
$exsite_email = ldap_count_entries($ldapconn, $result);
// on compte le nombre de login identique dans l'AD
$exsite_login = ldap_count_entries($ldapconn, $result2);
/* UTILE POUR AFFICHER SI UN UTILISATEUR EXISTE
echo "</br>Nombre d email existant".$exsite_email ;
echo "</br>Nombre de login existant".$exsite_login ; */
// On encode le mot de passe pour pouvoir activer le compte (Obligatoire)
$newPassword = $password;
$newPassw = "";
$newPassword = "\"" . $newPassword . "\"";
$len = strlen($newPassword);
for ($i = 0; $i < $len; $i++)
$newPassw .= "{$newPassword{$i}}\000";
$newPassword = $newPassw;
//si pas d homonyme (le compte n exsite_email pas) alors on le crée
if ($exsite_email == 0 && $exsite_login == 0 && $EtatCompte == 0)
{
$cn = $nom." ".$prenom;
$basedn = "CN=$cn,$BaseUtilisateur";
//$adduserAD["cn"][0] =
//$adduserAD["instancetype"][0] =
$adduserAD["samaccountname"][0] = $login;
$adduserAD["userprincipalname"][0] = $prenom.".".$nom."@ensae.fr";
$adduserAD["objectclass"][0] = "top";
$adduserAD["objectclass"][1] = "person";
$adduserAD["objectclass"][2] = "organizationalPerson";
$adduserAD["objectclass"][3] = "user";
$adduserAD["displayname"][0] = $nom." ".$prenom;
$adduserAD["name"][0] = $nom;
$adduserAD["unicodePwd"][0] = $newPassword;
$adduserAD["userAccountControl"][0] = 544;
$adduserAD["accountExpires"][0] = $DateExpiration;
//$adduserAD["scriptPath"][0] = "";
$adduserAD["homeDirectory"][0] = "\\\paradis\\eleves\\".$login ;
$adduserAD["homeDrive"][0] = "W:";
$adduserAD["profilepath"][0] = "\\\paradis\profils\\".$login;
$adduserAD["givenname"][0] = $prenom;
$adduserAD["sn"][0] = $nom;
//$adduserAD["company"][0] = "";
//$adduserAD["department"][0] = "";
//$adduserAD["title"][0] = "";
$adduserAD["description"][0] = "Eleve de l'ENSAE";
//$adduserAD["mail"][0] = $email;
//$adduserAD["initials"][0] = "";
// on CREE le compte
$r = ldap_add($ldapconn, $basedn, $adduserAD);
if ($r == true) {
$resultatcompte = 0 ;
} else {
echo "ERREUR DANS LA CREATION DU COMPTE AD</br>";
//var_dump ($r);
$resultatcompte = 1 ;
}
// ON AJOUTE L UTILISATEUR AUX GROUPES CORRESPONDAND AUX VOIES SELECTIONNEES
// on compte combien de groupes sont séléctionnés
$N = count($voie);
for($i=0; $i < $N; $i++)
{
$dn = "CN=$voie[$i]$BaseGroupe";
//echo $dn;
//echo "</br>";
$entry["member"] = $basedn;
$result_group = @ldap_mod_add($ldapconn, $dn, $entry);
if ($result_group == false) {
echo "ERREUR RENCONTREE DANS L AJOUT DES GROUPES/VOIES</br>";
$resultatgroupe = "NOK";
}
}
// ajout par défaut du groupe ClearPass-ETUDIANT pour acces WIFI, PromotionsENSAE et Mesdossiers_Paradis
$entry["member"] = $basedn;
$wifiGroupe = @ldap_mod_add($ldapconn, $wifi, $entry);
$PromotionsENSAEGroupe = @ldap_mod_add($ldapconn, $PromotionsENSAE, $entry);
$MesDossiersGroupe = @ldap_mod_add($ldapconn, $MesDossiers, $entry);
//*****************ON CREE LA MESSAGERIE********************************
$cmd = "powershell.exe C:\\wamp64\\www\\administrationAD\\creation-mail.ps1 $login $email $alias 2>&1";
try {
set_time_limit(300);
$execmail = shell_exec($cmd);
$resultatmail = 0 ;
//echo $resultatmail;
}
catch(Exception $e)
{
echo "Erreur lancement script création mail";
//var_dump($e);
$resultatmail = 1 ;
exit;
}
//***************** ON CREE HOMEDIRECTORY + ACL ********************************
$cmd2 = "powershell.exe C:\\wamp64\\www\\administrationAD\\homedirectory.ps1 $login 2>&1";
try {
set_time_limit(300);
$exechomedir = shell_exec($cmd2);
$resultathomedir = 0 ;
//echo $resultathomedir;
}
catch(Exception $ex)
{
echo "Erreur lancement script creation home directory";
$resultathomedir = 1 ;
//var_dump($ex);
exit;
}
// ON AFFICHE LES INFOS COMPLETES
echo "</br>Bonjour ".$prenom." ".$nom ;
echo "</br>";
echo "Votre login est ".$login;
echo "</br>";
echo "Votre mot de passe est : ".$newPassword;
echo "</br>";
echo "Votre adresse email est ".$email;
echo "</br>";
$N = count($voie);
echo("Selection de $N voie(s): ");
echo "</br>";
for($i=0; $i < $N; $i++)
{
echo($voie[$i] . "<br>");
}
//echo '</br><a href="#" OnClick="javascript:window.print()">Imprimer</a>';
}
//NOUVEL UTILISATEUR MAIS IL exsite_email UN COMPTE SIMILAIRE DANS L AD
elseif ($exsite_email > 0 || $exsite_login > 0)
{
if ($EtatCompte == 0)
{
echo "Compte existant, on crée un nouveau compte en ajoutant la deuxieme lettre du prenom dans le login </br>";
$unwanted_array = array( 'Š'=>'S', 'š'=>'s', 'Ž'=>'Z', 'ž'=>'z', 'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E',
'Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I', 'Ï'=>'I', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U',
'Ú'=>'U', 'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B', 'ß'=>'Ss', 'à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'a', 'å'=>'a', 'æ'=>'a', 'ç'=>'c',
'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ë'=>'e', 'ì'=>'i', 'í'=>'i', 'î'=>'i', 'ï'=>'i', 'ð'=>'o', 'ñ'=>'n', 'ò'=>'o', 'ó'=>'o', 'ô'=>'o', 'õ'=>'o',
'ö'=>'o', 'ø'=>'o', 'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'ý'=>'y', 'þ'=>'b', 'ÿ'=>'y' );
// le point entre le prenom et le nom sera remplacé par underscore _
$email = $prenom_mail."_".$nom2_mail;
$email = substr($email,0,64);
//$email = $email."@ensae-paristech.fr";
$email = $email."@ensae.fr";
$email = strtr( $email, $unwanted_array );
$email = strtolower($email);
// on crée un nouveau login formé par les 2premieres lettre du prenom puis le nom
$prenomFirstLetter = $prenom2[0];
$prenomSecondLetter = $prenom2[1];
$prenom2letter = $prenomFirstLetter.$prenomSecondLetter;
$login = $prenom2letter.$nom2;
$login = strtolower($login);
$login = strtolower($login);
// on prend les 20 premiers caracteres
$login = substr($login,0,20);
// on ne garde que les lettres
$login = preg_replace("/[^a-zA-Z]/", "", $login);
echo "Le login sera : ".$login."</br>";
$cn = $nom.".".$prenom;
$basedn = "CN=$cn,$BaseUtilisateur";
$adduserAD["samaccountname"][0] = $login;
$adduserAD["userprincipalname"][0] = $prenom2letter.".".$nom2."@ensae.fr";
$adduserAD["objectclass"][0] = "top";
$adduserAD["objectclass"][1] = "person";
$adduserAD["objectclass"][2] = "organizationalPerson";
$adduserAD["objectclass"][3] = "user";
$adduserAD["displayname"][0] = $nom." ".$prenom;
$adduserAD["name"][0] = $nom;
$adduserAD["unicodePwd"][0] = $newPassword;
$adduserAD["userAccountControl"][0] = 544;
$adduserAD["accountExpires"][0] = $DateExpiration;
$adduserAD["homeDirectory"][0] = "\\\paradis\\eleves\\".$login ;
$adduserAD["homeDrive"][0] = "W:";
$adduserAD["profilepath"][0] = "\\\paradis\profils\\".$login;
$adduserAD["givenname"][0] = $prenom;
$adduserAD["sn"][0] = $nom;
$adduserAD["description"][0] = "Eleve de l'ENSAE";
// on CREE le compte
$re = @ldap_add($ldapconn, $basedn, $adduserAD);
if ($re == true) {
$resultatcompte = 0 ;
} else {
echo "ERREUR DANS LA CREATION DU COMPTE AD</br>";
$resultatcompte = 1 ;
}
// ON AJOUTE L UTILISATEUR AUX GROUPES CORRESPONDAND AUX VOIES SELECTIONNEES
// on compte combien de groupes sont séléctionnés
$N = count($voie);
for($i=0; $i < $N; $i++)
{
$dn = "CN=$voie[$i]$BaseGroupe";
//echo $dn;
echo "</br>";
$entry["member"] = $basedn;
$result_group = @ldap_mod_add($ldapconn, $dn, $entry);
if ($result_group == false) {
echo "ERREUR RENCONTREE DANS L AJOUT DES GROUPES/VOIES</br>";
}
}
// ajout par défaut du groupe ClearPass-ETUDIANT pour acces WIFI
$wifiGroupe = @ldap_mod_add($ldapconn, $wifi, $entry);
$PromotionsENSAEGroupe = @ldap_mod_add($ldapconn, $PromotionsENSAE, $entry);
$MesDossiersGroupe = @ldap_mod_add($ldapconn, $MesDossiers, $entry);
//*****************ON CREE LA MESSAGERIE********************************
$cmd = "powershell.exe C:\\wamp64\\www\\administrationAD\\creation-mail.ps1 $login $email $alias";
try {
set_time_limit(300);
$execmail = shell_exec($cmd);
$resultatmail = 0 ;
//echo "<pre>";
//echo($output);
}
catch(Exception $e)
{
echo "Erreur sur la création de la messagerie";
// var_dump($e);
$resultatmail = 1 ;
exit;
}
//***************** ON CREE HOMEDIRECTORY + ACL ********************************
$cmd2 = "powershell.exe C:\\wamp64\\www\\administrationAD\\homedirectory.ps1 $login";
try {
set_time_limit(300);
$exechomedir = shell_exec($cmd2);
$resultathomedir = 0 ;
//echo($resultathomedir);
}
catch(Exception $ex)
{
echo "Erreur lancemeny script Home directory";
//var_dump($ex);
$resultathomedir = 1 ;
exit;
}
// ON AFFICHE LES INFOS COMPLETES
echo "Bonjour ".$prenom." ".$nom ;
echo "</br>";
echo "Votre login est ".$login;
echo "</br>";
echo "Votre mot de passe est : ".$newPassword;
echo "</br>";
echo "Votre adresse email est ".$email;
echo "</br>";
$N = count($voie);
echo("Selection de $N voie(s): ");
echo "</br>";
for($i=0; $i < $N; $i++)
{
echo($voie[$i] . "<br>");
}
//echo '</br><a href="#" OnClick="javascript:window.print()">Imprimer</a>';
}
else
{
echo "Ce n'est pas un nouveau compte";
}
}
// TRAITEMENT DES PROLONGATIONS DES COMPTES
if ($EtatCompte == 1)
{
// pour afficher la date de valide du compte initial
echo "</br>Date d expiration actuelle : ".$ResultMailExist[0]['accountexpires'][0]."</br>";
echo $ResultMailExist[0]['distinguishedname'][0];
$dn = $ResultMailExist[0]['distinguishedname'][0];
$entry['accountexpires'][0] = $DateExpiration;
$result_dateexpiration = @ldap_mod_replace($ldapconn, $dn, $entry);
if ($result_dateexpiration == true)
{
echo "</br>Prolongement effectué</br>";
$resultatprolongation = 0;
} else {
echo "<b><span style='color:red;'> Erreur rencontré sur le prolongement</span></b></br>";
echo "</br>debug : mail reçu : ".$EtudiantMail."</br>";
$resultatprolongation = 1;
}
// on ajoute les nouveaux groupes à l'utilisateur
$N = count($voie);
echo "Nombre de groupe selectionné : ".$N."</br>";
for($i=0; $i < $N; $i++)
{
$GroupeSelection = "CN=$voie[$i]$BaseGroupe";
$Groupe['member'] = $ResultMailExist[0]['distinguishedname'][0];
$result_group = @ldap_mod_add($ldapconn, $GroupeSelection, $Groupe);
if ($result_group == true) {
echo "</br>Ajout du groupe : ".$voie[$i]."</br>";
} else { echo "L'utilisateur est probablement déjà membre du groupe ".$voie[$i]."</br>"; }
}
$promoENSAE['member'] = $ResultMailExist[0]['distinguishedname'][0];
$result_promoENSAE = @ldap_mod_add($ldapconn, $PromotionsENSAE, $promoENSAE);
if ($result_promoENSAE == true) {
echo "Ajout du groupe : PromotionsENSAE</br>";
} else { echo "L'utilisateur est probablement déjà membre du groupe PromotionsENSAE </br>"; }
$GroupMember['member'] = $ResultMailExist[0]['distinguishedname'][0];
$result_wifiGroupe = @ldap_mod_add($ldapconn, $wifi, $GroupMember);
if ($result_wifiGroupe == true) {
echo "Ajout du groupe : ClearPass-ETUDIANT (WIFI)</br>";
} else { echo "L'utilisateur est probablement déjà membre du groupe Wifi </br>"; }
// if (result_dateexpiration == true)
// {
// $resultatprolongation = "Succès";
// } else {
// $resultat = "Echec";
// }
//
$email = $EtudiantMail ;
}
// CREATION DU FICHIER UTILISATEUR
$newuser[] = array("$nom", "$prenom", "$password", "$login", "$email", "$resultatcompte", "$resultathomedir", "$resultatmail", "$datetime" );
//print_r($newuser);
// Paramétrage de l'écriture du futur fichier CSV
$chemin = 'eleves2023.csv';
$delimiteur = ','; // Pour une tabulation, utiliser $delimiteur = "t";
$fichier_csv = fopen($chemin, 'a');
// Si votre fichier a vocation a être importé dans Excel,
// vous devez impérativement utiliser la ligne ci-dessous pour corriger
// les problèmes d'affichage des caractères internationaux (les accents par exemple)
fprintf($fichier_csv, chr(0xEF).chr(0xBB).chr(0xBF));
// chaque ligne en cours de lecture est insérée dans le fichier
// les valeurs présentes dans chaque ligne seront séparées par $delimiteur
foreach($newuser as $ligne)
{
fputcsv($fichier_csv, $ligne);
}
// fermeture du fichier csv
fclose($fichier_csv);
if ($resultatcompte == 0 && $resultathomedir == 0 && $resultatmail == 0 ) {
//$resultat = "Le compte ".$login." a bien été crée, email : ".$email.", mot de passe : ".$password ;
$resultat = "Succès";
echo "</br>L'ajout du compte à été réalisé sans erreur.";
} else {
$resultat = "Echec";
echo "</br>Un problème est survenu à la création du compte ou son prolongement.";
}
// Pas d'erreur rencontrée
if ($EtatCompte == 0) {
?>
<form action="https://inscription.ensae.fr/index.php/comptead/retour" id="formAD" name="formAD" method="post" accept-charset="utf-8" enctype="multipart/form-data">
<input type="hidden" name="resultat" value="<?php echo $resultat; ?>" />
<input type="hidden" name="id" value="<?php echo $id; ?>" />
<input type="hidden" name="login" value="<?php echo $login; ?>" />
<input type="hidden" name="email" value="<?php echo $email; ?>" />
<input type="hidden" name="password" value="<?php echo $password; ?>" />
<input type="submit"/>
</form>
<!--script>formAD.submit();</script-->
<?php
}
// si erreur rencontrée
if ($EtatCompte == 1) {
?>
<form action="https://inscription.ensae.fr/index.php/comptead/retour" id="formAD" name="formAD" method="post" accept-charset="utf-8" enctype="multipart/form-data">
<input type="hidden" name="resultat" value="<?php echo $resultat; ?>" />
<input type="hidden" name="id" value="<?php echo $id; ?>" />
<input type="hidden" name="email" value="<?php echo $email; ?>" />
<input type="submit"/>
</form>
<?php
}
} else {
echo "LDAP bind failed...";
}
}
// all done clean up
ldap_close($ldapconn);
?>
</body>
</html>