[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 3 /** 4 5 * Gestion des dossiers /var/se3/Classes/Classe_XXX/_echange 6 * @Version $Id: dossier_echange.php 7315 2012-06-29 16:01:16Z plouf $ 7 8 * @Projet SE3 9 10 * @auteurs Humblement bricole par Stephane Boireau (AS Bernay/Pont-Audemer (27)) d'apres plusieurs pages;o): 11 12 * @note Et j'ai emprunte la fonction classes_prof() a la page echanges/distribuer.php de Jean Gourdin - Pierre-Yves Petit 13 14 * @Licence Distribue selon les termes de la licence GPL 15 */ 16 17 18 19 /** 20 * @Repertoire dossier_echange/ 21 * file dossier_echange.php 22 */ 23 24 25 include "entete.inc.php"; 26 include "ldap.inc.php"; 27 include "ihm.inc.php"; 28 29 require_once ("lang.inc.php"); 30 bindtextdomain('se3-dossier_echange',"/var/www/se3/locale"); 31 textdomain ('se3-dossier_echange'); 32 33 foreach ($_POST as $cle=>$val) { 34 $$cle = $val; 35 } 36 37 38 //Pour tenir compte des essais... 39 $nom_de_la_page="dossier_echange.php"; 40 41 echo "<h1>".gettext("Gestion des dossiers d'échange")."</h1>"; 42 43 //if (is_admin("se3_is_admin",$login)=="Y") { 44 45 //aide 46 $_SESSION["pageaide"]="Ressources_et_partages#Dossier_.C3.A9change"; 47 48 49 50 //La gestion multi-serveur n'est pas en place... 51 //Je l'ai laissee en pensant faire des essais par la suite, 52 //mais je n'ai encore jamais fait l'install multi-serveur 53 //et par consequent, je n'en ai pas sous le coude pour tester;o). 54 55 56 // Prepositionnement variables 57 $mono_srv = false; 58 $multi_srv = false; 59 // Recherche de la nature mono ou multi serveur de la plateforme SE3 60 $master=search_machines ("(l=maitre)", "computers"); 61 $slaves= search_machines ("(l=esclave)", "computers"); 62 if ( count($master) == 0 ) { 63 echo gettext("<P>ERREUR : Il n'y a pas de serveur maitre déclaré dans l'annuaire ! <BR>Veuillez contacter le super utilisateur du serveur SE3.</P>"); 64 } elseif ( count($master) == 1 && count($slaves) == 0 ) { 65 // Plateforme mono-serveur 66 $mono_srv = true; 67 } elseif ( count($master) == 1 && count($slaves) > 0 ) { 68 $multi_srv = true; 69 } 70 // Fin Recherche de la nature mono ou multi serveur de la plateforme SE3 71 72 if ( $mono_srv ) { 73 // configuration mono serveur : determination des parametres du serveur 74 $serveur=search_machines ("(l=maitre)", "computers"); 75 $cn_srv= $serveur[0]["cn"]; 76 $stat_srv = $serveur[0]["l"]; 77 $ipHostNumber = $serveur[0]["ipHostNumber"]; 78 } elseif ($multi_srv) { 79 // configuration multi-serveurs : presentation d'un form de selection du serveur 80 if ( !$selected_srv && !$del_folders_classes) { 81 echo gettext("<P><H3>Sélection du serveur ou vous souhaitez lister les ressources classes disponibles : </H3>"); 82 $servers=search_computers ("(|(l=esclave)(l=maitre))"); 83 echo "<form action=\"$nom_de_la_page\" method=\"post\">\n"; 84 for ($loop=0; $loop < count($servers); $loop++) { 85 echo $servers[$loop]["description"]." ".$servers[$loop]["cn"]." <input type=\"radio\" name=\"cn_srv\" value =\"".$servers[$loop]["cn"]."\""; 86 if ($loop==0) echo "checked"; 87 echo "><BR>\n"; 88 } 89 $form="<input type=\"reset\" value=\"Réinitialiser la sélection\">\n"; 90 $form ="<input type=\"hidden\" name=\"selected_srv\" value=\"true\">\n"; 91 $form.="<input type=\"submit\" value=\"Valider\">\n"; 92 $form.="</form>\n"; 93 echo $form; 94 } elseif ( $selected_srv && $multi_srv) { 95 // configuration multi serveurs : determination des parametres du serveur 96 $serveur=search_machines ("(cn=$cn_srv)", "computers"); 97 $stat_srv = $serveur[0]["l"]; 98 $ipHostNumber = $serveur[0]["ipHostNumber"]; 99 } 100 } 101 102 103 104 // Recherche des ressources classes existantes 105 if (is_admin("se3_is_admin",$login)=="Y") { 106 if ($stat_srv == "maitre") { 107 // Serveur maitre : Recherche des ressources classes existantes 108 // ouverture du repertoire Classes 109 $loop=0; 110 $repClasses = dir ("/var/se3/Classes/"); 111 // recuperation de chaque entree 112 while ($ressource = $repClasses->read()) { 113 if ( preg_match("/^Classe_/", $ressource) ) { 114 $list_ressources[$loop]= $ressource; 115 $loop++; 116 } 117 } 118 $repClasses->close(); 119 } elseif ($stat_srv == "esclave") { 120 // Serveur esclave : Recherche des ressources classes existantes 121 exec ("ssh -l remote_adm $ipHostNumber 'ls /var/se3/Classes'", $list_ressources, $ReturnValue); 122 } 123 } 124 else{ 125 include ("fonc_outils.inc.php"); 126 $list_ressources=classes_prof($login); 127 } 128 // Fin Recherche des ressources classes existantes 129 130 131 132 // Presentation de la liste des ressources disponibles 133 if ( ($stat_srv == "maitre" || $stat_srv == "esclave") ) { 134 135 //Le choix des classes a traiter est-il fait? 136 if(!isset($choice_done)){ 137 //echo "<H3>".gettext("Liste des ressources Classes disponibles sur le serveur "). "$cn_srv</H3>\n"; 138 echo "<H3>".gettext("Création/Activation/Désactivation des dossiers _echange sur le serveur "). "$cn_srv</H3>\n"; 139 if (count($list_ressources) == 0 ) { 140 echo "<P>".gettext("Il n'y a pas de ressources Classes sur ce serveur !")."</P>\n"; 141 } else { 142 if ( count($list_ressources)>10) $size=10; else $size=count($list_ressources); 143 //echo "<h4>Création/Activation/Désactivation des dossiers _echange</h4>"; 144 //echo "<form>\n"; 145 echo "<form action=\"$nom_de_la_page\" method=\"post\">\n"; 146 // Affichage liste des ressources disponibles 147 /* 148 echo "<select size=\"".$size."\" name=\"list_classes[]\" multiple=\"multiple\">\n"; 149 for ($loop=0; $loop<count($list_ressources);$loop++) { 150 echo "<option value=".$list_ressources[$loop].">".$list_ressources[$loop]."\n"; 151 } 152 echo "</select><br>\n"; 153 */ 154 155 /* 156 //AJOUT MODIF 157 */ 158 echo "<p>".gettext("Les boutons sont placés dans l'état actuel.")."<br>\n"; 159 echo gettext("Seules les classes pour lesquelles vous modifierez le choix seront affectées.")."<br>\n"; 160 echo gettext("L'accès au dossier I:\public est aussi activé/verrouillé par la même opération.")."</p>\n"; 161 echo "<table border=\"1\">"; 162 echo "<tr class=\"menuheader\" height=\"30\" style=\"font-weight:bold;\" align=\"center\">"; 163 echo "<td>".gettext("Classe")."</td>"; 164 echo "<td>".gettext("Etat actuel")."</td>"; 165 echo "<td>".gettext("Actif")."</td>"; 166 echo "<td>".gettext("Verrouillé")."</td>"; 167 echo "<td>".gettext("Réactiver<br>automatiquement<br>l'accès<br> après...")."</td></tr>\n"; 168 for ($loop=0; $loop<count($list_ressources);$loop++) { 169 //Recuperation de l'etat actuel: 170 exec ("/usr/bin/sudo /usr/share/se3/scripts/echange_classes.sh \"$list_ressources[$loop]\" \"etat\"",$resultat); 171 172 // Si actif 173 $color_actif=""; 174 $pre_selectionne=""; 175 if("$resultat[0]"=="actif"){ 176 $color_actif=" bgcolor=\"#00FF00\""; 177 $pre_selectionne=" checked=\"true\""; 178 } 179 180 echo "<tr align=\"center\" $color_actif>\n"; 181 echo "<td>$list_ressources[$loop]<input type=\"hidden\" name=\"list_classes[$loop]\" value=\"$list_ressources[$loop]\"></td>\n"; 182 echo "<td>$resultat[0]<input type=\"hidden\" name=\"etat_actuel[$loop]\" value=\"$resultat[0]\"></td>\n"; 183 184 echo "<td><input type=\"radio\" name=\"activate[$loop]\" value=\"actif\"$pre_selectionne></td>\n"; 185 186 $pre_selectionne=""; 187 if("$resultat[0]"=="verrouille"){ 188 $pre_selectionne=" checked=\"true\""; 189 } 190 echo "<td><input type=\"radio\" name=\"activate[$loop]\" value=\"verrouille\"$pre_selectionne></td>\n"; 191 192 //Delai: 193 echo "<td>\n"; 194 echo "<input type=\"checkbox\" name=\"delai[$loop]\" value=\"oui\">\n"; 195 echo "<select name=\"heures[$loop]\">\n"; 196 for($i=0;$i<=12;$i++){ 197 echo "<option value=\"$i\">$i</option>\n"; 198 } 199 echo "</select> H \n"; 200 echo "<select name=\"minutes[$loop]\">\n"; 201 for($i=0;$i<=55;$i=$i+5){ 202 echo "<option value=\"$i\">$i</option>\n"; 203 } 204 echo "</select> MIN \n"; 205 echo "</td>\n"; 206 //echo "<input type=\"text\" name=\"minutes\" value=\"5\">minutes</td>"; 207 echo "</tr>\n"; 208 unset($resultat); 209 } 210 echo "</table>\n"; 211 /* 212 //FIN MODIF 213 */ 214 215 echo "<input type=\"hidden\" name=\"stat_srv\" value=\"$stat_srv\">\n"; 216 echo "<input type=\"hidden\" name=\"choice_done\" value=\"true\">\n"; 217 //echo "Activer: <input type=\"radio\" name=\"activate\" value=\"yes\" checked> / \n"; 218 //echo "<input type=\"radio\" name=\"activate\" value=\"no\">: Désactiver<BR>\n"; 219 echo "<input type=\"submit\" value=\"Envoyer\">"; 220 echo "</form>\n"; 221 } 222 } 223 else { 224 //PARTIE ACTION: 225 //Le choix des classes a traiter a ete effectue dans le formulaire ci-dessus. 226 //echo "<p>activate=$activate</p>\n"; 227 echo "<h3>".gettext("Traitement des dossiers _echange")."</h3>\n"; 228 229 /* 230 if(count($list_classes)=="0"){ 231 echo "<p>".gettext("Crénom de bourricot, vous n'avez pas sélectionné de classe !")."</p>"; 232 } 233 else{ 234 for ($loop=0; $loop<count($list_classes); $loop++) { 235 if ($list_classes[$loop]){ 236 if("$activate"=="yes"){ 237 $textactivation="Activation"; 238 } 239 else{ 240 $textactivation="Désactivation"; 241 } 242 #echo "<p>Traitement du dossier $list_classes[$loop]/_echange<br>\n"; 243 echo "<p>$textactivation du dossier $list_classes[$loop]/_echange<br>\n"; 244 //echo "exec (\"/bin/sh /usr/share/se3/scripts/echange_classes.sh \\\"$list_classes[$loop]\\\" \\\"$activate\\\"\")</p>\n"; 245 exec ("/usr/bin/sudo /usr/share/se3/scripts/echange_classes.sh \"$list_classes[$loop]\" \"$activate\""); 246 echo "</p>\n"; 247 } 248 } 249 } 250 */ 251 252 for ($loop=0; $loop<count($list_classes); $loop++) { 253 //echo "<p>".count($list_classes)."</p>\n"; 254 //if("$list_classes[$loop]"!=""){ 255 if ("$etat_actuel[$loop]"!="$activate[$loop]"){ 256 if("$activate[$loop]"!=""){ 257 if("$activate[$loop]"=="actif"){ 258 $textactivation="Activation"; 259 } 260 else{ 261 $textactivation="Désactivation"; 262 } 263 echo "<p>$textactivation ".gettext(" du dossier")." $list_classes[$loop]/_echange<br>\n"; 264 exec ("/usr/bin/sudo /usr/share/se3/scripts/echange_classes.sh \"$list_classes[$loop]\" \"$activate[$loop]\""); 265 //sleep(1); 266 267 //Dans le cas ou il existait une temporisation, 268 //comme on refait ici le choix d'activer ou de desactiver l'acces, 269 //on vide l'eventuelle temporisation anterieure. 270 if(file_exists("$chemin_tmp/levee_restriction_echange_$list_classes[$loop].sh")){ 271 unlink("$chemin_tmp/levee_restriction_echange_$list_classes[$loop].sh"); 272 } 273 274 sleep(1); 275 276 //On ne met en place que des temporisations de deverrouillage 277 //(donc: quand un verrouillage est mis en place, on teste si un minutage est demande) 278 if(("$delai[$loop]"=="oui")&&("$activate[$loop]"=="verrouille")&&(("$minutes[$loop]"!="0")||("$heures[$loop]"!="0"))){ 279 $chemin_tmp="/tmp"; 280 //$chemin_tmp="/var/remote_adm"; 281 /* 282 //Le fichier est vire plus haut. 283 if(file_exists("$chemin_tmp/levee_restriction_echange_$list_classes[$loop].sh")){ 284 unlink("$chemin_tmp/levee_restriction_echange_$list_classes[$loop].sh"); 285 } 286 */ 287 $fichier=fopen("$chemin_tmp/levee_restriction_echange_$list_classes[$loop].sh","w+"); 288 if($fichier){ 289 fwrite($fichier,"#!/bin/bash\n"); 290 fwrite($fichier,"/usr/bin/sudo /usr/share/se3/scripts/echange_classes.sh \"$list_classes[$loop]\" \"actif\"\n"); 291 chmod("$chemin_tmp/levee_restriction_echange_$list_classes[$loop].sh",0700); 292 fclose($fichier); 293 294 $duree_delai=$heures[$loop]*60+$minutes[$loop]; 295 296 exec ("at -f $chemin_tmp/levee_restriction_echange_$list_classes[$loop].sh +$duree_delai minute"); 297 echo gettext("Les dossiers I:\public et H:\\")."$list_classes[$loop]\_echange ".gettext(" seront réactivés dans ")." $duree_delai ".gettext("minutes.\n"); 298 299 unset($duree_delai); 300 } 301 } 302 echo "</p>\n"; 303 } 304 else{ 305 //Pas de modification pour $list_classes[$loop] 306 //parce que le dossier n'est pas encore initialies 307 //et qu'aucune case n'etait selectionnee. 308 echo "\n"; 309 } 310 } 311 else{ 312 //Pas de modification pour cette classe 313 //(le bouton radio d'activation/verrouillage n'a pas ete deplace). 314 echo "\n"; 315 } 316 //} 317 } 318 echo "<p><a href=\"dossier_echange.php\">".gettext("Retour au menu 'Dossier _echange'")."</a></p>\n"; 319 } 320 } 321 //} // Fin if is_admin 322 include ("pdp.inc.php"); 323 ?>
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 |