[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 3 4 /** 5 6 * Suppression des imprimantes conformement au souhait de l'utilisateur 7 * @Version $Id: delete_printer.php 8561 2015-03-15 13:37:16Z plouf $ 8 9 * @Projet LCS / SambaEdu 10 11 * @auteurs Patrice Andre <h.barca@free.fr> 12 * @auteurs Carip-Academie de Lyon 13 14 * @Licence Distribue selon les termes de la licence GPL 15 16 * @note 17 18 */ 19 20 /** 21 22 * @Repertoire: printers/ 23 * file: delete_printer.php 24 25 */ 26 27 28 29 30 // Suppression des imprimantes conformement au souhait de l'utilisateur: // 31 // -Retrait d'imprimantes du parc selectionne ( Supprimee comme membre d'un parc seulement) 32 // ou -Suppression definitive d'une imprimante ( Ne presente plus aucune trace ni dans LDAP, ni dans CUPS) 33 34 include "entete.inc.php"; 35 include "ldap.inc.php"; // pour fonction search_machines () 36 include "ihm.inc.php"; // pour fonction is_admin() 37 include "printers.inc.php"; 38 39 require_once ("lang.inc.php"); 40 bindtextdomain('se3-printers',"/var/www/se3/locale"); 41 textdomain ('se3-printers'); 42 43 //aide 44 $_SESSION["pageaide"]="Imprimantes"; 45 46 47 /** 48 49 * Fonction qui vire une machine d'un parc, supprime le parc si la machine est la derniere dedans. 50 * @Parametres On donne le nom de la machine et le parc 51 * @Return 52 53 */ 54 55 56 function supprime_machine_parc($mpenc,$parc) { 57 include "config.inc.php"; 58 // On compte si la demande ne porte pas sur toutes les machines 59 $mp_all=gof_members($parc,"parcs",1); 60 $mpcount=count($mp_all); 61 62 // Si la demande porte sur la derniere machine du parc 63 // On vire le parc 64 65 if ($mpcount == "1") { 66 $cDn = "cn=".$parc.",".$parcsRdn.",".$ldap_base_dn; 67 exec ("/usr/share/se3/sbin/entryDel.pl \"$cDn\""); 68 } 69 if ($mpcount > "1") { 70 $resultat=search_imprimantes("printer-name=$mpenc","printers"); 71 $suisje_printer="non"; 72 for ($loopp=0; $loopp < count($resultat); $loopp++) { 73 if ($mpenc==$resultat[$loopp]['printer-name']) { 74 $suisje_printer="yes"; 75 continue; 76 } 77 } 78 79 $pDn = "cn=".$parc.",".$parcsRdn.",".$ldap_base_dn; 80 if ($suisje_printer=="yes") { 81 // je suis une imprimante 82 $cDn = "cn=".$mpenc.",".$printersRdn.",".$ldap_base_dn; 83 } else { 84 // je suis un ordianteur 85 $cDn = "cn=".$mpenc.",".$computersRdn.",".$ldap_base_dn; 86 } 87 // on supprime 88 exec ("/usr/share/se3/sbin/groupDelEntry.pl \"$cDn\" \"$pDn\""); 89 } 90 } 91 92 if (is_admin("se3_is_admin",$login)=="Y") { 93 94 $choix = $_POST['choix']; 95 $parc = $_POST['parc']; 96 $filtre_imp = $_POST['filtre_imp']; 97 $old_printers = $_POST['old_printers']; 98 $mp = $_POST['mp']; 99 $delete_printer = $_POST['delete_printer']; 100 101 // Affichage de la page de selection du parc dans le cas du retrait d'imprimante(s) pour un parc. 102 if ( ($choix=="option1") && !isset($parc) ) { 103 echo "<H1>".gettext("Sélection du parc")."</H1>"; 104 $list_parcs=search_machines("objectclass=GroupOfNames","parcs"); // !!!! Fonction search _machines ambigue !! 105 if ( count($list_parcs)>0) { // elle liste ici les parcs (meme fonc utilisee) 106 echo "<FORM METHOD=\"post\">\n"; 107 echo "<P>".gettext("Effacer des imprimantes du parc")."\n</P>"; 108 echo "<SELECT NAME=\"parc\" SIZE=\"1\">"; 109 for ($loop=0; $loop < count($list_parcs); $loop++) { 110 echo "<option value=\"".$list_parcs[$loop]["cn"]."\">".$list_parcs[$loop]["cn"]."\n"; 111 } 112 echo "</SELECT> \n"; 113 echo "<INPUT TYPE=\"hidden\" NAME=\"choix\" VALUE=\"option1\">"; 114 echo "<INPUT TYPE=\"submit\" VALUE=\"".gettext("Valider")."\">\n"; 115 echo "</FORM>\n"; 116 } 117 } 118 if ( isset($parc) || ($choix=="option2") ) { 119 // Affichage de la page de selection des imprimantes a supprimer. 120 if ( !$delete_printer ) { 121 // Lecture des membres du parc 122 if ( $choix=="option1" ) { // Cas d'une suppression par parc 123 $mp_all=printers_members($parc,"parcs",1); 124 } else { // Cas d'une suppression definitive 125 $mp_x=search_printers("printer-name=*"); // search_printers() renvoie un tableau a 2 dimensions dont la 126 for ( $loop=0;$loop<count($mp_x);$loop++ ) { // deuxieme concerne les attributs LDAP, d'ou la necessite d'isoler 127 $mp_all[$loop]=$mp_x[$loop]['printer-name']; //le nom pour avoir un tableau a une seule dimension compatible 128 } // avec le reste du programme 129 } 130 if (count($mp_all)>0) { 131 echo "<H1>".gettext("Sélection des imprimantes à supprimer")."</H1>"; 132 // Filtrage des noms 133 //Affichage de la boite de saisie du nom d'imprimante a filtrer 134 echo "<FORM ACTION=\"delete_printer.php\" METHOD=\"post\">\n"; 135 echo "<P>".gettext("Lister les noms contenant:"); 136 echo "<INPUT TYPE=\"text\" NAME=\"filtre_imp\"\n VALUE=\"$filtre_imp\" SIZE=\"8\">"; 137 echo "<INPUT TYPE=\"hidden\" NAME=\"parc\" VALUE=\"$parc\">\n"; 138 if ($choix=="option1") { 139 echo "<INPUT TYPE=\"hidden\" NAME=\"choix\" VALUE=\"$option1\">"; 140 } else { 141 echo "<INPUT TYPE=\"hidden\" NAME=\"choix\" VALUE=\"$option2\">"; 142 } 143 echo "<INPUT TYPE=\"submit\" VALUE=\"".gettext("Valider")."\">\n"; 144 echo "</FORM>\n"; 145 // Filtrage selon critere indique par l'utilisateur 146 if ("$filtre_imp"=="") $mp=$mp_all; 147 else { 148 $lmloop=0; 149 $mpcount=count($mp_all); 150 for ($loop=0; $loop < count($mp_all); $loop++) { 151 $imp=$mp_all[$loop]; 152 if (preg_match("/$filtre_imp/",$imp)) $mp[$lmloop++]=$imp; 153 } 154 } 155 if ( count($mp)>15) $size=15; else $size=count($mp); // Definition de la taille du formulaire liste 156 if ( count($mp)>0) { // Dans le cas ou il y'a desimprimantes 157 // Affichage du formulaire liste des imprimantes valides. 158 echo "<FORM ACTION=\"delete_printer.php\" method=\"post\">\n"; 159 if ($choix=="option1") { 160 echo "<P>".gettext("Sélectionnez les imprimantes à enlever du parc")." $parc:</P>\n"; 161 } else { 162 echo "<P>".gettext("Sélectionnez les imprimantes que vous souhaitez supprimer:")."</P>\n"; 163 echo "<P>".gettext("ATTENTION !! La suppression effacera intégralement les informations de configuration pour les imprimantes séléctionées !")."</P>"; 164 } 165 echo "<P><SELECT SIZE=\"".$size."\" NAME=\"old_printers[]\" MULTIPLE=\"multiple\">\n"; 166 for ($loop=0; $loop < count($mp); $loop++) { 167 echo "<OPTION VALUE=\"$mp[$loop]\">$mp[$loop]"; 168 } 169 echo "</SELECT></P>\n"; 170 echo "<INPUT TYPE=\"hidden\" NAME=\"delete_printer\" VALUE=\"true\">\n"; 171 echo "<INPUT TYPE=\"hidden\" NAME=\"parc\" VALUE=\"$parc\">\n"; 172 echo "<INPUT TYPE=\"hidden\" NAME=\"choix\" VALUE=\"$choix\">"; 173 echo "<INPUT TYPE=\"submit\" VALUE=\"".gettext("Valider")."\" ONCLICK= \"return getconfirm();\">\n"; 174 echo "</FORM>\n"; 175 } 176 } else { // A fortiori quand il n'y'a pas d'imprimantes a supprimer 177 echo "<h1>Suppression d'imprimantes</h1>\n"; 178 $message = gettext("Il n'y a pas d'imprimantes à supprimer !"); 179 echo $message; 180 echo "<br><br><center>"; 181 echo "<a href=\"delete_printer_choice.php\">Retour</a>"; 182 } 183 } else { // Affichage de la page de configmation des suppressions. 184 // Suppression des imprimantes dans le parc 185 if ($choix=="option1") { 186 echo "<H1>".gettext("Suppression d'imprimantes dans le parc")." <U>$parc</U></H1>"; 187 echo "<P>".gettext("Vous avez sélectionné "). count($old_printers).gettext(" imprimante(s)")."<BR><BR>\n"; 188 for ($loop=0; $loop < count($old_printers); $loop++) { 189 $printer=$old_printers[$loop]; 190 supprime_machine_parc($printer,$parc); 191 // exec ("/usr/share/se3/sbin/printerDelPark.pl $printer $parc",$AllOutPutValue,$ReturnValue); 192 // if ($ReturnValue==0) { 193 echo gettext("Suppression de l'imprimante")." <B>$printer</B> ".gettext("du parc")." <B>$parc</B> ".gettext("effectuée")."<BR>"; 194 // } else { 195 // echo "<B>ECHEC</B>".gettext(" de la suppression de l'imprimante")." <B>$printer</B> ".gettext("du parc")." <B>$parc</B><BR>"; 196 // } 197 } 198 echo "<BR><P>".gettext("N'oubliez pas de désinstaller les pilotes sur chaque poste du parc")." $parc</P>"; 199 } else { 200 echo "<H1>".gettext("Suppression définitive d'imprimantes")."</H1>"; 201 echo "<P>".gettext("Vous avez sélectionné "). count($old_printers). gettext(" imprimante(s)")."<BR><BR>\n"; 202 for ($loop=0; $loop < count($old_printers); $loop++) { 203 $printer=$old_printers[$loop]; 204 // On supprime d'abord des parcs 205 // meme si le script perl le fait, il ne gere pas le probleme de 206 // la derniere machine d'un parc 207 208 $list_parcs=search_machines("objectclass=groupOfNames","parcs"); 209 if ( count($list_parcs)>0) { 210 sort($list_parcs); 211 for ($loopp=0; $loopp < count($list_parcs); $loopp++) { 212 $parc_list = $list_parcs[$loopp]["cn"]; 213 supprime_machine_parc($printer,$parc_list); 214 } 215 } 216 exec ("/usr/share/se3/sbin/printerDel.pl $printer",$AllOutPutValue,$ReturnValue); 217 if ($ReturnValue==0) { 218 echo gettext("Suppression de l'imprimante")." <B>$printer</B> ".gettext("effectuée")."<BR>"; 219 } else { 220 echo "<B>".gettext("ECHEC")."</B> ".gettext("de la suppression de l'imprimante")." <B>$printer</B><BR>"; 221 } 222 } 223 echo "<BR><P>".gettext("N'oubliez pas de désinstaller les pilotes sur chaque poste")."</P>"; 224 } 225 } 226 } 227 } 228 229 include ("pdp.inc.php"); 230 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |