forked from DSIT/documentation-dsit
Suppression gestion des arrivées/départ
This commit is contained in:
parent
af492548c7
commit
ad3d026ee8
|
@ -1,82 +0,0 @@
|
||||||
# Gestion des arrivées/départs au GENES (hors ENSAI)
|
|
||||||
|
|
||||||
## Elèves
|
|
||||||
|
|
||||||
### Arrivées
|
|
||||||
|
|
||||||
```mermaid
|
|
||||||
flowchart TB
|
|
||||||
start(" Admis ENSAE") --> Inscription("Inscription ENSAE")
|
|
||||||
|
|
||||||
start-ipp("Admis Master Ip-Paris") --> Inscription-ipp(Inscription Ip-Paris)
|
|
||||||
|
|
||||||
|
|
||||||
subgraph X
|
|
||||||
Inscription-ipp --> Isiatis
|
|
||||||
Isiatis --> Inscription
|
|
||||||
end
|
|
||||||
subgraph eleves
|
|
||||||
Inscription --> Validation
|
|
||||||
end
|
|
||||||
subgraph DSIT
|
|
||||||
Validation --> creation("Création du compte, profil mail")
|
|
||||||
creation --> ajout-liste("Ajout dans les listes de diffusions élèves")
|
|
||||||
creation --> publication("Affichage des informations du compte<br/> sur site d'inscription")
|
|
||||||
Validation --> creation-pamplemousse("Création de l'étudiant dans pamplemousse")
|
|
||||||
creation --> lien-compte("Lien compte pamplemousse avec compte AD")
|
|
||||||
creation --> licence("Attribution Licence O365")
|
|
||||||
end
|
|
||||||
subgraph Scolarité
|
|
||||||
creation-pamplemousse --> creation-badge("Création des badges élèves")
|
|
||||||
end
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
!!! note
|
|
||||||
|
|
||||||
le [script de création de compte ](./eleves/creation-compte.php) est appelé directement depuis le site d'inscription une fois celle ci validée. Le compte est créé directement dans la bonne OU (de l'année en cours) avec une date d'expiration au 01/09/N+3. Certains groupes sont ajoutés par défaut :
|
|
||||||
|
|
||||||
* ClearPass-ETUDIANT
|
|
||||||
* MesDossiers_Paradis
|
|
||||||
* PromotionsENSAE
|
|
||||||
|
|
||||||
l'ajout des listes de diffusion se fait à partir des informations pamplemousse (voie de l'étudiant)
|
|
||||||
|
|
||||||
|
|
||||||
Création des badges ??
|
|
||||||
|
|
||||||
#### Départ
|
|
||||||
|
|
||||||
Compte Expire ...
|
|
||||||
Suppression mail/ad/profil ???
|
|
||||||
|
|
||||||
|
|
||||||
## Agent Genes Administratif (SG et/ou ENSAE)
|
|
||||||
|
|
||||||
### Arrivées
|
|
||||||
|
|
||||||
```mermaid
|
|
||||||
graph LR
|
|
||||||
|
|
||||||
subgraph SRH
|
|
||||||
signature("Recrutement d'un agent") --> Init-fa("Initialisation Fiche Arrivée")
|
|
||||||
Finalisation-fa-->creation-ticket("Création Ticket pour support DSIT")
|
|
||||||
Finalisation-fa --> creation-badge("Création badge d'acces")
|
|
||||||
end
|
|
||||||
subgraph Recruteur
|
|
||||||
Init-fa-->Complement-fa("Ajout Fiche Arrivée")
|
|
||||||
Complement-fa --> Affectation-bureau("Décision sur le bureau")
|
|
||||||
Complement-fa --> Ajout-role-service("Ajout des logiciels,services et équipements nécessaires")
|
|
||||||
Ajout-role-service--> Finalisation-fa("Signature FA")
|
|
||||||
Affectation-bureau --> Finalisation-fa
|
|
||||||
end
|
|
||||||
subgraph DSIT
|
|
||||||
creation-ticket --> creation-compte("Création Compte Profil Mail")
|
|
||||||
creation-ticket --> Installation-locale
|
|
||||||
|
|
||||||
end
|
|
||||||
subgraph LOG
|
|
||||||
creation-ticket -.-> amenagement-bureau("Transfert Logistique pour aménagement bureau")
|
|
||||||
end
|
|
||||||
|
|
||||||
```
|
|
|
@ -1,750 +0,0 @@
|
||||||
<?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>
|
|
|
@ -1,22 +0,0 @@
|
||||||
$login = $args[0];
|
|
||||||
$email = $args[1];
|
|
||||||
$alias = $args[2];
|
|
||||||
|
|
||||||
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://sp-exch01.ensae.fr/PowerShell/ -Authentication Kerberos
|
|
||||||
Import-PSSession $Session -DisableNameChecking -AllowClobber | Out-Null
|
|
||||||
|
|
||||||
try {
|
|
||||||
|
|
||||||
|
|
||||||
Enable-Mailbox -Identity $login -Database "DB01_ELEVES-SP-EXCH01" -Alias $login -PrimarySmtpAddress $email | Out-Null
|
|
||||||
write-host "0"
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
catch {
|
|
||||||
|
|
||||||
|
|
||||||
write-host "1"
|
|
||||||
|
|
||||||
}
|
|
||||||
Remove-PSSession $Session
|
|
|
@ -1,85 +0,0 @@
|
||||||
$login = $args[0];
|
|
||||||
$basehomedirectory = "\\paradis\eleves\";
|
|
||||||
$homedirectory = $basehomedirectory + $login;
|
|
||||||
$domain = "ENSAE\"
|
|
||||||
$user = $domain + $login ;
|
|
||||||
|
|
||||||
if(!(Test-Path -Path $homedirectory )){
|
|
||||||
|
|
||||||
New-Item -Path $homedirectory -ItemType directory | Out-Null
|
|
||||||
|
|
||||||
#Define FileSystemAccessRights:identifies what type of access we are defining, whether it is Full Access, Read, Write, Modify
|
|
||||||
$FileSystemAccessRights = [System.Security.AccessControl.FileSystemRights]"FullControl"
|
|
||||||
|
|
||||||
#define InheritanceFlags:defines how the security propagates to child objects by default
|
|
||||||
#Very important - so that users have ability to create or delete files or folders
|
|
||||||
#in their folders
|
|
||||||
|
|
||||||
$InheritanceFlags = [System.Security.AccessControl.InheritanceFlags]::"ContainerInherit", "ObjectInherit"
|
|
||||||
|
|
||||||
#Define PropagationFlags: specifies which access rights are inherited from the parent folder (users folder).
|
|
||||||
|
|
||||||
$PropagationFlags = [System.Security.AccessControl.PropagationFlags]::None
|
|
||||||
|
|
||||||
#Define AccessControlType:defines if the rule created below will be an 'allow' or 'Deny' rule
|
|
||||||
|
|
||||||
$AccessControl =[System.Security.AccessControl.AccessControlType]::Allow
|
|
||||||
#define a new access rule to apply to users folfers
|
|
||||||
|
|
||||||
$acl1 = New-Object System.Security.AccessControl.FileSystemAccessRule `
|
|
||||||
("Admins du domaine", $FileSystemAccessRights, $InheritanceFlags, $PropagationFlags, $AccessControl)
|
|
||||||
|
|
||||||
$acl2 = New-Object System.Security.AccessControl.FileSystemAccessRule `
|
|
||||||
("Système", $FileSystemAccessRights, $InheritanceFlags, $PropagationFlags, $AccessControl)
|
|
||||||
|
|
||||||
$acl3 = New-Object System.Security.AccessControl.FileSystemAccessRule `
|
|
||||||
($login, $FileSystemAccessRights, $InheritanceFlags, $PropagationFlags, $AccessControl)
|
|
||||||
|
|
||||||
$acl4 = New-Object System.Security.AccessControl.FileSystemAccessRule `
|
|
||||||
("administrationannuai", $FileSystemAccessRights, $InheritanceFlags, $PropagationFlags, $AccessControl)
|
|
||||||
|
|
||||||
#ACL Admins du domaine
|
|
||||||
$rule1 = Get-ACL -path $homedirectory
|
|
||||||
#Add this access rule to the ACL
|
|
||||||
$rule1.SetAccessRule($acl1)
|
|
||||||
#Write the changes to the user folder
|
|
||||||
Set-ACL -path $homedirectory -AclObject $rule1
|
|
||||||
|
|
||||||
#ACL Systeme
|
|
||||||
$rule2 = Get-ACL -path $homedirectory
|
|
||||||
#Add this access rule to the ACL
|
|
||||||
$rule2.SetAccessRule($acl2)
|
|
||||||
#Write the changes to the user folder
|
|
||||||
Set-ACL -path $homedirectory -AclObject $rule2
|
|
||||||
|
|
||||||
#ACL Utilisateur final
|
|
||||||
$rule3 = Get-ACL -path $homedirectory
|
|
||||||
#Add this access rule to the ACL
|
|
||||||
$rule3.SetAccessRule($acl3)
|
|
||||||
#Write the changes to the user folder
|
|
||||||
Set-ACL -path $homedirectory -AclObject $rule3
|
|
||||||
|
|
||||||
#On casse l heritage mais on ne supprime pas les acls heritees
|
|
||||||
$acl = Get-ACL -Path $homedirectory
|
|
||||||
$acl.SetAccessRuleProtection($True, $False)
|
|
||||||
Set-Acl -Path $homedirectory -AclObject $acl
|
|
||||||
|
|
||||||
#On copie le login sur admanager pour gestion des ACLs plus fine
|
|
||||||
$destination = "\\admanager\monitor$\"
|
|
||||||
$pathdestination = $destination + $login
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
New-Item $pathdestination -ItemType file | Out-Null
|
|
||||||
Write-host "0"
|
|
||||||
}
|
|
||||||
|
|
||||||
Catch {
|
|
||||||
|
|
||||||
Write-Error "1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Write-host "1"
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user