".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";
}
} else {
// Suppression des machines sans parc
// cas delparc = 2
if ($delparc == "2") {
// Filtrage des noms
echo "\n";
// On recherche les machines sans parc
$list_computer=search_machines("(&(cn=*)(objectClass=ipHost))","computers");
if ( count($list_computer)>0) {
$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";
// 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";
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");
?>