".gettext("Ajout - Création ")."";
// Affichage du formulaire de sélection de parc
if ((!isset($parc))&&(!isset($newparc))) {
// Ajout de nouvelles machines dans les parcs
echo "
".gettext("Sélection du parc à alimenter")."
";
$list_parcs=search_machines("objectclass=groupOfNames","parcs");
if ( count($list_parcs)>0) {
echo "\n";
}
echo "
";
// Création de nouveau parc
// on ne propose pas de creer un nouveau parc si la page d'origine est recherche
if ($new_computers == "") {
echo "".gettext("Création d'un nouveau parc")."
";
echo "\n";
// Creation des templates si pas deje crees
echo "
";
echo "".gettext("Créer les dossiers de template pour les parcs existants")."
";
$list_parcs=search_machines("objectclass=groupOfNames","parcs");
if ( count($list_parcs)>0) {
echo "\n";
if($cpt_verif==0){
echo "".gettext("Tous les parcs existants ont leur dossier de template créé.")."
\n";
}
//echo "Dans le cas o le dossier de template existe déjà, il n'est pas modifié et rien n'est ajouté.
";
}
/**********************************************************************************/
}
// Debut du traitement
} else {
// Affichage du formulaire de remplissage du parc
if ($creationdossiertemplate!="oui") {
if ( !$create_parc) {
if (isset($newparc)) {
//=============================================================
//PROPOSITION:
//Passer d'autorité en minuscules le nom du parc
$newparc=strtolower($newparc);
if(strlen($newparc)==0){
echo "".gettext("Le nom du parc ne doit pas être vide.")."
\n";
include ("pdp.inc.php");
exit;
}
//On pourrait meme ajouter un test ereg plus haut pour exclure les caracteres speciaux
//(je suppose que le test est aussi fait au niveau du script PERL plus bas;o)
if(strlen(preg_replace("/[0-9a-z_]/","",$newparc))!=0){
echo "".gettext("Le nom du parc proposé comporte des caractères non valides.")."
\n";
echo gettext("Veuillez n'utiliser que des caractères alphanumériques en minuscules (surtout les chiffres;o) et éventuellement le caractère '_'.")."
\n";
echo "
";
echo "Retour";
echo "";
include ("pdp.inc.php");
exit;
} else {
//=============================================================
// Création d'un nouveau parc
echo gettext("Création du parc ").$_POST['newparc'];
echo "
";
echo gettext("Vous devez obligatoirement ajouter une machine dedans.");
echo " ";
echo "
\n";
$parc=$newparc;
//=============================================================
}
}
$filtrecomp=isset($_POST['filtrecomp']) ? $_POST['filtrecomp'] : "";
echo "".gettext("Alimentation du parc")." $parc
";
// Filtrage des noms
echo "\n";
// Initialisation:
$list_new_machines=array();
// Lecture des membres du parc
$mp=gof_members($parc,"parcs",1);
// Creation d'un tableau des nouvelles machines à intégrer
if ($filtrecomp == '') $filtrel = '*';
else $filtrel = "*$filtrecomp*";
$list_machines=search_machines("(&(cn=$filtrel)(objectClass=ipHost))","computers");
// tri des machines déja présentes dans le parc
$lmloop=0;
$mpcount=count($mp);
for ($loop=0; $loop < count($list_machines); $loop++) {
$loop1=0;
$mach=$list_machines[$loop]["cn"];
while (("$mp[$loop1]" != "$mach") && ($loop1 < $mpcount)) $loop1++;
if ("$mp[$loop1]" != "$mach") $list_new_machines[$lmloop++]=$mach;
}
// Affichage menu de sélection des machines à ajouter au parc
if ( count($list_new_machines)>15) $size=15; else $size=count($list_new_machines);
if ( count($list_new_machines)>0) {
sort($list_new_machines);
$form = "\n";
echo $form;
} else {
$message = gettext("Il n'y a pas de nouvelles machines à ajouter !");
echo $message;
}
} else {
// Remplissage du parc dans l'annuaire
// Et éventuellement création
// plus création du template
echo "".gettext("Alimentation du parc")." $parc
";
echo "".gettext("Vous avez sélectionné "). count($new_computers).gettext(" machine(s)")."
\n";
if((count($new_computers)=="0") && ($_POST['newparc']!="")) {
echo "
";
echo gettext("Vous n'avez pas sélectionné au moins une machine.
Le parc ne sera pas créé.");
}
for ($loop=0; $loop < count($new_computers); $loop++) {
$computer=$new_computers[$loop];
$cDn = "cn=".$computer.",".$computersRdn.",".$ldap_base_dn;
$pDn = "cn=".$parc.",".$parcsRdn.",".$ldap_base_dn;
// Création du template au premier passage uniquement
if(($_POST['createtemplateparc']=="yes") && $loop==0) {
echo "
".gettext("Création du dossier du template de parc ");
echo $_POST['newparc'];
echo "
";
exec ("/bin/bash /usr/share/se3/scripts/createtemplateparc.sh \"$newparc\"");
}
echo gettext("Ajout de l'ordinateur")." $computer ".gettext("au parc")." $parc
";
// Si on est en train de créer un nouveau parc
if ($newparc!="") {
exec ("/usr/share/se3/sbin/entryAdd.pl \"cn=$newparc,$parcsRdn,$ldap_base_dn\" \"cn=$newparc\" \"objectClass=groupOfNames\" \"member=$cDn\"");
exec ("/usr/share/se3/sbin/printers_group.pl");
// Lance le script pour wpkg
$script_wpkg="/usr/share/se3/scripts/update_hosts_profiles_xml.sh";
if (file_exists($script_wpkg)) {
exec ("/bin/bash /usr/share/se3/scripts/update_hosts_profiles_xml.sh ou=Computers ou=Parcs $ldap_base_dn");
exec ("/bin/bash /usr/share/se3/scripts/update_droits_xml.sh");
}
$newparc="";
} else {
// Sinon on ajoute simplement
exec ("/usr/share/se3/sbin/groupAddEntry.pl \"$cDn\" \"$pDn\"");
// NJ 10-2004 reconstruction des partages imprimantes par parc
exec ("/usr/share/se3/sbin/printers_group.pl");
// On relance le script pour italc
exec ("/usr/bin/sudo /usr/share/se3/scripts/italc_generate.sh");
// Lance le script pour wpkg
$script_wpkg="/usr/share/se3/scripts/update_hosts_profiles_xml.sh";
if (file_exists($script_wpkg)) {
exec ("/bin/bash /usr/share/se3/scripts/update_hosts_profiles_xml.sh ou=Computers ou=Parcs $ldap_base_dn");
exec ("/bin/bash /usr/share/se3/scripts/update_droits_xml.sh");
}
echo "
";
}
}
echo "
\n";
echo "Retour";
}
}
// Création des templates apres
if($creationdossiertemplate=="oui") {
echo "".gettext("Création des dossiers de parc")."
\n";
if(count($parc)==0){
echo "".gettext("Erreur").": ".gettext("Vous n'avez pas sélectionné de parc;o).")."
";
} else {
for($loop=0;$loop".gettext("Création du dossier de template pour le parc")." $parc[$loop]\n";
exec ("/bin/bash /usr/share/se3/scripts/createtemplateparc.sh \"$parc[$loop]\"");
}
}
}
}
}
include ("pdp.inc.php");
?>