".gettext("Suppression de machine").""; // Affichage du formulaire de selection de parc if ((!isset($parc)) && ($delparc!=2)) { // La variable parc est vide on affiche une selecion // On retourne de choix : // delparc = 0 on efface des machines du parc // delparc = 1 on efface tout le parc echo "

".gettext("Sélection du parc à modifier")."

"; $list_parcs=search_machines("objectclass=groupOfNames","parcs"); if ( count($list_parcs)>0) { echo "
\n"; echo "\n"; echo "  \n"; echo "\n"; echo "Effacer les machines d\'un parc Sélectionner un parc dans lequel vous souhaitez supprimer des machines.
La suppression de toutes les machines d\'un parc provoque la suppression du parc.
Effacer le parc provoque la suppression du parc, mais pas la suppression des machines dans l\'annuaire.
Pour supprimer proprement les machines, vous devez aller dans Etat par nom de machine et sélectionner la machine à supprimer.
Supprimer une machine sans parc permet de supprimer complétement une machine n\'appartenant à aucun parc.')")."\">\"help\"
"; echo "
\n"; } } else { // Suppression des machines sans parc // cas delparc = 2 if ($delparc == "2") { // Filtrage des noms echo "
\n"; echo "

".gettext("Lister les noms contenant: "); echo ""; echo "\n"; echo "\n"; echo "

\n"; // On recherche les machines sans parc $list_computer=search_machines("(&(cn=*)(objectClass=ipHost))","computers"); if ( count($list_computer)>0) { $form = "
\n"; $form.="

".gettext("Sélectionnez les machines sans parc à supprimer : ")."

\n"; $form.="

\n"; $form.="\n"; $form.="\n"; $form.="\n"; $form.="\n"; $form.="
\n"; echo $form; } // On quitte include ("pdp.inc.php"); exit; } // Affichage du formulaire de suppression des machines du parc // la variable parc n'est pas vide // delparc = 0 // On propose les machines a supprimer qui existent dans ce parc if ((!$delete_parc )&&($delparc!="1")) { // Filtrage des noms echo "
\n"; echo "

".gettext("Lister les noms contenant: "); echo ""; echo "\n"; echo "\n"; echo "

\n"; // Lecture des membres du parc $mp_all=gof_members($parc,"parcs",1); // Filtrage selon critere if ("$filtrecomp"=="") { $mp=$mp_all; } else { $lmloop=0; $mpcount=count($mp_all); for ($loop=0; $loop < count($mp_all); $loop++) { $mach=$mp_all[$loop]; if (preg_match("/$filtrecomp/",$mach)) $mp[$lmloop++]=$mach; } } if ( count($mp)>15) $size=15; else $size=count($mp); if ( count($mp)>0) { $form = "
\n"; $form.="

".gettext("Sélectionnez les machines à enlever du parc : ")."$parc

\n"; $form.="

\n"; // Si il ne reste qu'une seule machine if ( count($mp)==1) { $form.=gettext("Si vous supprimez la dernière machine, le parc sera supprimé."); $form.="
"; $form.="\n"; } $form.="\n"; $form.="\n"; $form.="\n"; $form.="\n"; $form.="
\n"; echo $form; } else { $message = gettext("Il n'y a pas de machines à supprimer !"); echo "

"; echo $message; } } else { // Si on veut supprimer tout le parc sans supprimer les machines de l'annuaire // Il faut delparc = 1 et parc non vide if ($delparc=="1") { if ($parc=="") { echo "Vous devez sélectionner un parc !"; echo "

"; echo "Retour"; echo "
"; exit; } else { // Suppression du parc echo "

".gettext("Suppression du parc")." $parc

"; $cDn = "cn=".$parc.",".$parcsRdn.",".$ldap_base_dn; exec ("/usr/share/se3/sbin/entryDel.pl \"$cDn\""); // on la vire d'italc // On relance le script exec ("/usr/bin/sudo /usr/share/se3/scripts/italc_generate.sh"); echo "
"; echo gettext("Le template de ce parc n'a pas été supprimé."); echo "
"; echo gettext("Vous devez le faire à la main"); echo "

"; echo "Retour"; echo "
"; } } else { // Suppression des machines dans le parc // Il faut parc non vide // Si le nombre de machine a supprimer = nombre de machine dans le parc on supprime // aussi le parc if ($parc=="000001") { echo "

".gettext("Suppression de machine(s) sans parc")."

"; echo "

".gettext("Vous avez sélectionné "). count($supprime_all).gettext(" machine(s)")."
\n"; } else { echo "

".gettext("Suppression de machines dans le parc")." $parc

"; echo "

".gettext("Vous avez sélectionné "). count($old_computers).gettext(" machine(s)")."
\n"; } // On compte si la demande ne porte pas sur toutes les machines $mp_all=gof_members($parc,"parcs",1); $mpcount=count($mp_all); // Si la demande porte sur toutes les machines du parc // On vire le parc if ($mpcount == count($old_computers)) { if($parc!="000001") { // cas des machines sans parc echo "

".gettext("Suppression du parc")." $parc

"; echo gettext("Vous avez demandé à supprimer toutes les machines du parc $parc"); echo "

"; echo gettext("le parc sera aussi supprimé"); $cDn = "cn=".$parc.",".$parcsRdn.",".$ldap_base_dn; exec ("/usr/share/se3/sbin/entryDel.pl \"$cDn\""); // On vire pour italc exec ("/usr/bin/sudo /usr/share/se3/scripts/italc_generate.sh"); // on reconstruira a la fin // exec ("/usr/share/se3/sbin/printers_group.pl"); } } else { // on extrait les machines a virer for ($loop=0; $loop < count($old_computers); $loop++) { $computer=$old_computers[$loop]; if($computer==$netbios_name) { echo "On ne supprime pas le serveur SE3 lui-même : $netbios_name
\n"; } else { // On verifie si ce n'est pas une imprimante $resultat=search_imprimantes("printer-name=$computer","printers"); $suisje_printer="non"; for ($loopp=0; $loopp < count($resultat); $loopp++) { if ($computer==$resultat[$loopp]['printer-name']) { $suisje_printer="yes"; continue; } } $pDn = "cn=".$parc.",".$parcsRdn.",".$ldap_base_dn; if ($suisje_printer=="yes") { // je suis une imprimante echo gettext("Suppression de l'imprimante")." $computer ".gettext("du parc")." $parc
\n"; $cDn = "cn=".$computer.",".$printersRdn.",".$ldap_base_dn; } else { // je suis un ordinateur echo gettext("Suppression de l'ordinateur")." $computer ".gettext("du parc")." $parc
\n"; $cDn = "cn=".$computer.",".$computersRdn.",".$ldap_base_dn; // Test la machine prof pour italc $machine_prof=search_description_parc("$parc"); if($computer==$machine_prof) { echo "
Attention : vous ne disposez plus de machine professeur pour le parc $parc"; modif_description_parc ($parc,"0"); } } // on supprime exec ("/usr/share/se3/sbin/groupDelEntry.pl \"$cDn\" \"$pDn\""); // Modif pour italc exec ("/usr/bin/sudo /usr/share/se3/scripts/italc_generate.sh"); echo "
"; } } } // si demande de suppression complete if (count($supprime_all)>0) { // On teste si la machine appartient a d'autres parcs // Si oui il faut verifier que cela n'implique pas la suppression de l'autre parc. for ($loopa=0; $loopa < count($supprime_all); $loopa++) { if($computer==$netbios_name) { echo "On ne supprime pas le serveur SE3 lui-même : $netbios_name
\n"; } else { $computer=$supprime_all[$loopa]; // On verifie si ce n'est pas une imprimante $resultat=search_imprimantes("printer-name=$computer","printers"); $suisje_printer="non"; for ($loopp=0; $loopp < count($resultat); $loopp++) { if ($computer==$resultat[$loopp]['printer-name']) { $suisje_printer="yes"; continue; } } if ($suisje_printer=="yes") { echo "

".gettext("Avertissement")."

"; echo "
"; echo "$computer "; echo gettext("est une imprimante."); echo "
"; echo gettext("Vous devez passer par le menu imprimante pour la supprimer définitivement"); } else { // on a bien une machine, on peut la supprimer // On cherche d'abord si elle appartient pas a un autre parc. $list_parcs=search_machines("(&(member=cn=$computer,$computersRdn,$ldap_base_dn)(objectClass=groupOfNames))","parcs"); if (count($list_parcs)>0) { echo "
"; echo "

".gettext("Suppression des autres parcs")."

"; echo "
"; for ($loop=0; $loop < count($list_parcs); $loop++) { echo "Suppression du parc : "; $parc = $list_parcs[$loop]["cn"]; supprime_machine_parc($computer,$parc); echo $parc; echo "
"; // Test la machine prof pour italc $machine_prof=search_description_parc("$parc"); if($computer==$machine_prof) { echo "Attention : vous ne disposez plus de machine professeur pour le parc $parc"; modif_description_parc ($parc,"0"); } } } // Puis enfin on supprime la machine elle meme de l'annuaire echo "

".gettext("Suppression compléte de ")." $computer ".gettext("de l'annuaire")."

"; // Nettoyage de l'inventaire echo "Suppression de l'inventaire"; echo "
"; suppr_inventaire($computer); // voir si on doit pas nettoyer les connexions // Vire dans le dhcp // On teste si la table existe /* $exec = mysql_query("SHOW TABLES FROM `se3db` LIKE 'se3_dhcp'"); $tables =array(); while($row = mysql_fetch_row($exec)) { $tables[] = $row[0]; } if(in_array('se3_dhcp',$tables)){ $dhcp_ok = 1; } if ($dhcp_ok==1) { */ if ($dhcp=="1") { echo "Suppression du dhcp"; echo "
"; $suppr_query = "DELETE FROM `se3_dhcp` where `name` = '$computer'"; mysql_query($suppr_query); // On relance dhcp si celui-ci est active. exec("sudo /usr/share/se3/scripts/makedhcpdconf",$ret); } // La virer de wpkg echo "Suppression des rapports wpkg"; echo "
"; $rapport_computer="/var/se3/unattended/install/wpkg/rapports/".$computer.".txt"; $log_computer="/var/se3/unattended/install/wpkg/rapports/".$computer.".log"; if(file_exists($rapport_computer)) { @unlink($rapport_computer); } if(file_exists($log_computer)) { @unlink($log_computer);} // On relance le script pour italc echo "Suppression d'italc"; exec ("/usr/bin/sudo /usr/share/se3/scripts/italc_generate.sh"); exec ("/usr/share/se3/sbin/entryDel.pl cn=$computer,".$dn["computers"],$output,$returnval); exec ("/usr/share/se3/sbin/entryDel.pl uid=$computer$,".$dn["computers"]); exec("/usr/bin/touch /tmp/csvtodo",$ret); exec("sudo /usr/share/se3/sbin/update-csv.sh",$ret); } } } } // Suppression des delegations sans parc echo "

".gettext("Suppression des délégations sans parc")."

"; nettoie_delegation(); // NJ 10-2004 reconstruction des partages imprimantes exec ("/usr/share/se3/sbin/printers_group.pl"); // Lance le script de mise a jour pour wpkg update_wpkg(); echo "

"; echo "Retour"; //echo "Retour"; echo "
"; } } } } include ("pdp.inc.php"); ?>