* @auteurs Carip-Academie de Lyon * @Licence Distribue selon les termes de la licence GPL * @note */ /** * @Repertoire: printers/ * file: delete_printer.php */ // Suppression des imprimantes conformement au souhait de l'utilisateur: // // -Retrait d'imprimantes du parc selectionne ( Supprimee comme membre d'un parc seulement) // ou -Suppression definitive d'une imprimante ( Ne presente plus aucune trace ni dans LDAP, ni dans CUPS) include "entete.inc.php"; include "ldap.inc.php"; // pour fonction search_machines () include "ihm.inc.php"; // pour fonction is_admin() include "printers.inc.php"; require_once ("lang.inc.php"); bindtextdomain('se3-printers',"/var/www/se3/locale"); textdomain ('se3-printers'); //aide $_SESSION["pageaide"]="Imprimantes"; /** * Fonction qui vire une machine d'un parc, supprime le parc si la machine est la derniere dedans. * @Parametres On donne le nom de la machine et le parc * @Return */ function supprime_machine_parc($mpenc,$parc) { include "config.inc.php"; // 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 la derniere machine du parc // On vire le parc if ($mpcount == "1") { $cDn = "cn=".$parc.",".$parcsRdn.",".$ldap_base_dn; exec ("/usr/share/se3/sbin/entryDel.pl \"$cDn\""); } if ($mpcount > "1") { $resultat=search_imprimantes("printer-name=$mpenc","printers"); $suisje_printer="non"; for ($loopp=0; $loopp < count($resultat); $loopp++) { if ($mpenc==$resultat[$loopp]['printer-name']) { $suisje_printer="yes"; continue; } } $pDn = "cn=".$parc.",".$parcsRdn.",".$ldap_base_dn; if ($suisje_printer=="yes") { // je suis une imprimante $cDn = "cn=".$mpenc.",".$printersRdn.",".$ldap_base_dn; } else { // je suis un ordianteur $cDn = "cn=".$mpenc.",".$computersRdn.",".$ldap_base_dn; } // on supprime exec ("/usr/share/se3/sbin/groupDelEntry.pl \"$cDn\" \"$pDn\""); } } if (is_admin("se3_is_admin",$login)=="Y") { $choix = $_POST['choix']; $parc = $_POST['parc']; $filtre_imp = $_POST['filtre_imp']; $old_printers = $_POST['old_printers']; $mp = $_POST['mp']; $delete_printer = $_POST['delete_printer']; // Affichage de la page de selection du parc dans le cas du retrait d'imprimante(s) pour un parc. if ( ($choix=="option1") && !isset($parc) ) { echo "
".gettext("Vous avez sélectionné "). count($old_printers).gettext(" imprimante(s)")."
\n";
for ($loop=0; $loop < count($old_printers); $loop++) {
$printer=$old_printers[$loop];
supprime_machine_parc($printer,$parc);
// exec ("/usr/share/se3/sbin/printerDelPark.pl $printer $parc",$AllOutPutValue,$ReturnValue);
// if ($ReturnValue==0) {
echo gettext("Suppression de l'imprimante")." $printer ".gettext("du parc")." $parc ".gettext("effectuée")."
";
// } else {
// echo "ECHEC".gettext(" de la suppression de l'imprimante")." $printer ".gettext("du parc")." $parc
";
// }
}
echo "
".gettext("N'oubliez pas de désinstaller les pilotes sur chaque poste du parc")." $parc
"; } else { echo "".gettext("Vous avez sélectionné "). count($old_printers). gettext(" imprimante(s)")."
\n";
for ($loop=0; $loop < count($old_printers); $loop++) {
$printer=$old_printers[$loop];
// On supprime d'abord des parcs
// meme si le script perl le fait, il ne gere pas le probleme de
// la derniere machine d'un parc
$list_parcs=search_machines("objectclass=groupOfNames","parcs");
if ( count($list_parcs)>0) {
sort($list_parcs);
for ($loopp=0; $loopp < count($list_parcs); $loopp++) {
$parc_list = $list_parcs[$loopp]["cn"];
supprime_machine_parc($printer,$parc_list);
}
}
exec ("/usr/share/se3/sbin/printerDel.pl $printer",$AllOutPutValue,$ReturnValue);
if ($ReturnValue==0) {
echo gettext("Suppression de l'imprimante")." $printer ".gettext("effectuée")."
";
} else {
echo "".gettext("ECHEC")." ".gettext("de la suppression de l'imprimante")." $printer
";
}
}
echo "
".gettext("N'oubliez pas de désinstaller les pilotes sur chaque poste")."
"; } } } } include ("pdp.inc.php"); ?>