[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/var/www/se3/infos/ -> quota_fixer.php (source)

   1  <?php
   2  
   3  
   4     /**
   5     
   6     * Page permettant de fixer des quotas en dur pour les utilisateurs de se3 
   7     * @Version $Id: quota_fixer.php 8556 2015-03-15 13:00:59Z plouf $ 
   8     
   9     * @Projet LCS / SambaEdu 
  10     
  11     * @auteurs Olivier Lacroix (Olikin)
  12  
  13     * @Licence Distribue selon les termes de la licence GPL
  14     
  15     * @note Utilise le script quota_fixer_mysql.sh qui appelle quota.sh
  16     * @note contributions: Franck Molle, Stephane Boireau. Remerciements tous particuliers a Franck Molle. ;-)
  17     
  18     */
  19  
  20     /**
  21  
  22     * @Repertoire: /
  23     * file: quota_fixer.php
  24  
  25    */    
  26  
  27  
  28  require("entete.inc.php");
  29  
  30  //Verification existence utilisateur dans l'annuaire
  31  require("config.inc.php");
  32  require ("ldap.inc.php");
  33  
  34  //permet l'authentification is_admin
  35  require("ihm.inc.php");
  36  
  37  // Internationalisation
  38  require_once  ("lang.inc.php");
  39  bindtextdomain('se3-infos',"/var/www/se3/locale");
  40  textdomain ('se3-infos');
  41  
  42  //aide
  43  $_SESSION["pageaide"]="Quotas#Fixer_les_quotas";
  44  
  45  
  46  $partition=$_POST['partition'];
  47  if($partition=="") { $partition=$_GET['partition']; }
  48  $quota=$_POST['quota'];
  49  $depassement=$_POST['depassement'];
  50  $browser=$_POST['browser'];
  51  $grace=$_POST['grace'];
  52  $valider_var_se3=$_GET['valider_var_se3'];
  53  $valider_home=$_GET['valider_home'];
  54  $classe_gr=$_POST['classe_gr'];
  55  $equipe_gr=$_POST['equipe_gr'];
  56  $matiere_gr=$_POST['matiere_gr'];
  57  $autres_gr=$_POST['autres_gr'];
  58  $user=$_POST['user'];
  59  $messtxt_home=$_POST['messtxt_home'];
  60  $messtxt_var_se3=$_POST['messtxt_var_se3'];
  61  $nom=$_GET['nom'];
  62  $suppr=$_GET['suppr'];
  63  
  64  
  65  //AUTHENTIFICATION
  66  if (is_admin("system_is_admin",$login)!="Y")
  67      die (gettext("Vous n'avez pas les droits suffisants pour acc&#233;der &#224; cette fonction")."</BODY></HTML>");
  68  
  69  //EVALUE SI UNE SAISIE A ETE EFFECTUEE: AUTO-APPEL DE LA PAGE APRES FORMULAIRE REMPLI
  70  if (isset($browser)) {
  71      //rajoute indirectement l'avertissement sur /home mais supprime dans la suite de la page si non choisi
  72          $browser = preg_replace('/\\\++/','/', $browser); //gestion de \ qui passe mal (suppression des \\ en les rempla&#231;ant par un /)
  73          exec("sudo /usr/share/se3/scripts/warn_quota.sh $browser");
  74          $query="UPDATE params SET value=\"$browser\" WHERE name=\"quota_browser\";";
  75      mysql_query($query);
  76  }
  77  
  78  if (isset($quota) or isset($suppr)) {
  79  
  80      $nomscript=date("Y_m_d_H_i_s");
  81      $nomscript="tmp_quotas_$nomscript.sh";
  82      $nbr_user=0;
  83  
  84      system ("echo \"#!/bin/bash\n\" > /tmp/$nomscript");
  85  
  86      //  system ("echo \" \n\" >> /tmp/$nomscript");
  87       // chmod ("/tmp/$nomscript",0700);//}
  88   
  89       if (isset($suppr)) {
  90           $uids = search_uids ("(cn=".$nom.")");
  91                  $people = search_people_groups ($uids,"(sn=*)","cat");
  92          $nbr_user=$nbr_user+count($people);
  93          
  94           system("echo \"sudo /usr/share/se3/scripts/quota_fixer_mysql.sh $nom $partition suppr \n\" >> /tmp/$nomscript");
  95      }
  96  
  97  
  98      //EVALUE SI UN NOUVEAU QUOTA A ETE DEMANDE: AUTO-APPEL DE LA PAGE APRES FORMULAIRE REMPLI
  99  
 100      //si aucun quota specifie: quota par defaut de 20%
 101      if ($depassement == "") {$depassement = "20 %";}
 102  
 103      //transforme le depassement de quota en nombre
 104      $depassement = preg_replace('/\s%/', '', $depassement);
 105  
 106      //Teste si case quota non vide et si c'est un nombre et si superieur &#224; 10Mo dans le cas de la partition /home (pour eviter les problemes avec les repertories profiles, etc...
 107       if ($quota <> "" and $quota >= 0 and $depassement >= 0 and (intval($quota)>=10 or intval($quota)==0 or $partition=="/var/se3")){
 108          //PB CI DESSUS AVEC LE TEST POUR SAVOIR SI LA CHAINE EST UN ENTIER VALIDE
 109          //and is_int($quota) => a modifier
 110    
 111            if ($depassement == "") { $depassement="0"; }
 112  
 113          //Si le quota  est valide et les choix valides, fixe les quotas
 114            if (count($classe_gr) ) {
 115              foreach ($classe_gr as $grp){
 116                  $uids = search_uids ("(cn=".$grp.")");
 117                  $people = search_people_groups ($uids,"(sn=*)","cat");
 118                  $nbr_user=$nbr_user+count($people);
 119                  //system("echo \"sudo /usr/share/se3/scripts/quota_fixer_mysql.sh $grp $partition $quota $[$quota *($depassement+100)/100] \n\" >> /tmp/$nomscript");
 120  
 121                  $hard_quota = (int) ($quota * ($depassement+100)/100 );
 122                  system("echo \"sudo /usr/share/se3/scripts/quota_fixer_mysql.sh $grp $partition $quota $hard_quota \n\" >> /tmp/$nomscript");
 123  
 124              }
 125            }
 126  
 127            if (count($equipe_gr) ) {
 128              foreach ($equipe_gr as $grp){
 129                  $uids = search_uids ("(cn=".$grp.")");
 130                  $people = search_people_groups ($uids,"(sn=*)","cat");
 131                  $nbr_user=$nbr_user+count($people);
 132                  
 133                  $hard_quota = (int) ($quota * ($depassement+100)/100 );
 134                  system("echo \"sudo /usr/share/se3/scripts/quota_fixer_mysql.sh $grp $partition $quota $hard_quota \n\" >> /tmp/$nomscript");
 135  
 136              }
 137            }
 138  
 139  
 140            if (count($matiere_gr) ) {
 141              foreach ($matiere_gr as $grp){
 142                  $uids = search_uids ("(cn=".$grp.")");
 143                  $people = search_people_groups ($uids,"(sn=*)","cat");
 144                  $nbr_user=$nbr_user+count($people);
 145                  
 146                  $hard_quota = (int) ($quota * ($depassement+100)/100 );
 147                  system("echo \"sudo /usr/share/se3/scripts/quota_fixer_mysql.sh $grp $partition $quota $hard_quota \n\" >> /tmp/$nomscript");
 148  
 149              }
 150            }
 151                             
 152  
 153            if (count($autres_gr) ) {
 154              foreach ($autres_gr as $grp){
 155                  $uids = search_uids ("(cn=".$grp.")");
 156                  $people = search_people_groups ($uids,"(sn=*)","cat");
 157                  $nbr_user=$nbr_user+count($people);
 158                  
 159                  $hard_quota = (int) ($quota * ($depassement+100)/100 );
 160  //                 echo $hard_quota;
 161                  system("echo \"sudo /usr/share/se3/scripts/quota_fixer_mysql.sh $grp $partition $quota $hard_quota \n\" >> /tmp/$nomscript");
 162  
 163              }
 164            }
 165      
 166          //teste si utilisateur saisi pour recherche dans ldap
 167            if ($user<>"") {
 168              //recherche dans ldap si $user est valide
 169               $tabresult=search_people("uid=$user");
 170               if(count($tabresult)==1){
 171                   if($user!="admin" and $user!="root" and $user!="www-se3" and $user!="adminse3"){
 172                       //comme $user existe et non admin et non root => fixe le quota!
 173                       $nbr_user=$nbr_user+1;
 174                       
 175                      $hard_quota = (int) ($quota * ($depassement+100)/100 );
 176  //                     echo $hard_quota;
 177                      system("echo \"sudo /usr/share/se3/scripts/quota_fixer_mysql.sh $grp $partition $quota $hard_quota \n\" >> /tmp/$nomscript");
 178  
 179                  }
 180               }
 181            }
 182  
 183  }//fin du if($quota valide)
 184  
 185  //le script se supprime a la fin de son exec
 186  //system("echo \"rm -f /tmp/$nomscript \n\" >> /tmp/$nomscript");
 187  chmod ("/tmp/$nomscript",0700);
 188  
 189  // on est alors dans le cas: if(isset($quota or $suppr)) donc on execute le script 
 190  if($nbr_user>100000){
 191          //execution differee d'une minute pour ne pas attendre la page trop longtemps
 192      echo "<h3>".gettext("Les nouveaux quotas fix&#233;s concernant de nombreux utilisateurs")." ($nbr_user), ".gettext("ils ne seront effectifs et affich&#233;s que dans quelques minutes: pour actualiser cette page")." <a href=\"quota_fixer.php\"> ".gettext("cliquer ici")."</a></h3>\n";
 193      system ("echo \"#!/bin/bash\n\" > /tmp/lanceur.sh");
 194      system ("echo \"/bin/bash /tmp/$nomscript\n\" >> /tmp/lanceur.sh");
 195  
 196      chmod ("/tmp/lanceur.sh",0700);
 197  
 198      system("at -f /tmp/lanceur.sh now + 1 minute");
 199  } else {
 200      //execution immediate du script /root/tmp_quotas.sh
 201      exec("/tmp/$nomscript &");
 202  }
 203  
 204  
 205  // la page est affichee apres avoir clique sur valider: ce n'est pas juste une selection de partition
 206  if ($valider_home == "yes") {
 207      if ($messtxt_home == "on" and $partition == "/home") {
 208              $query="UPDATE params SET value=\"1\" WHERE name=\"quota_warn_home\";";
 209              mysql_query($query);
 210        } else {
 211              $query="UPDATE params SET value=\"0\" WHERE name=\"quota_warn_home\";";
 212              mysql_query($query);
 213        }
 214          //effet immediat
 215          exec("sudo /usr/share/se3/scripts/warn_quota.sh");
 216  } //fin du $valider_home=yes
 217  
 218  
 219  if ($valider_var_se3 == "yes") {
 220      if ($messtxt_var_se3 == "on" and $partition == "/var/se3") {
 221          $query="UPDATE params SET value=\"1\" WHERE name=\"quota_warn_varse3\";";
 222              mysql_query($query);
 223          } else {
 224          $query="UPDATE params SET value=\"0\" WHERE name=\"quota_warn_varse3\";";
 225              mysql_query($query);
 226        }
 227          //effet immediat
 228          exec("sudo /usr/share/se3/scripts/warn_quota.sh");
 229  } //fin du $valider_var_se3=yes
 230  
 231  }//fin du cas if (isset($quota) or isset($suppr))
 232  
 233  if (isset($grace)){
 234      if ($grace>0) {    exec("sudo /usr/share/se3/scripts/quota_grace_delai.sh $grace $partition");}
 235  }
 236  
 237  
 238  
 239  //DEBUT DES AFFICHAGES HTML
 240  echo "<h1>".gettext("Quotas fix&#233;s sur /home et /var/se3")."</h1>\n\n";
 241  
 242  // Affichage du contenu de la table en HTML
 243  $arr = array("/home", "/var/se3");
 244  
 245  echo "<center>\n";
 246  foreach ($arr as $partit) {
 247      $query="SELECT type,nom,quotasoft,quotahard FROM quotas WHERE partition='$partit' ORDER BY type DESC, nom";
 248      $resultat=mysql_query($query);
 249  
 250      echo "<FORM ACTION=\"quota_fixer.php\" method=\"post\">\n";
 251      echo "<table border=1 width=\"80%\">\n";
 252      echo "<TR><TD class=\"menuheader\" height=\"30\" align=center colspan=\"5\">";
 253      echo gettext("Quotas actuels sur")." $partit</TD></TR>\n";
 254  
 255      $i=0;
 256      while ($line = mysql_fetch_assoc($resultat)) {
 257           if ($i==0){
 258               // ligne d'entetes
 259                echo "<tr><td align=center width=\"40%\">".gettext("Nom (utilisateur ou groupe)")."</td><td align=center  width=\"30%\">".gettext("Quota")."</td><td align=center width=\"30%\">".gettext("D&#233;passement temporaire autoris&#233;")."</td>\n";
 260            }
 261  
 262            echo "\t<tr>\n";
 263            $i=0;
 264            // me sert de repere pour savoir dans quelle colonne du tableau je suis (pour memoriser le nom $nom pour le lien quota_fixer.php?suppr=suppr&nom=$nom&partition=$partit)
 265            foreach ($line as $col_value) {
 266                 if ($i == 0) {$typ= $col_value;}
 267                 if ($i == 1) {
 268                     $nom= $col_value;
 269                  if ($typ == "u"){
 270                      #rajouter le ? pour expliquer que l'user est preponderant sur tout groupe
 271                      $col_value ="$col_value &nbsp;&nbsp; <u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('Les quotas fix&#233;s sur un utilisateur sont pr&#233;pond&#233;rants quelques soient les groupes d\'appartenance.')")."\"><img name=\"action_image6\"  src=\"../elements/images/system-help.png\"></u>\n";
 272                  }
 273                 }
 274                 
 275              if ($i == 2) {
 276                  $soft= $col_value;
 277                     if ($soft == 0)    {$col_value="Illimit&#233;";}
 278                  else
 279                  {$col_value="$col_value Mo";}
 280                 }
 281     
 282                 if ($i == 3) {
 283                     if ($col_value==$soft) {
 284                      if ($soft==0) {$col_value="-";}
 285                       else
 286                      {$col_value = "Non";}
 287                  } else {
 288                      $col_value=($col_value-$soft)*100/$soft;
 289                       $col_value="$col_value %";
 290                  }
 291                 }
 292                 
 293              if ($i>0) {echo "\t\t<td align=center> $col_value </td>\n";}
 294                 $i=$i+1;
 295            }
 296           
 297          echo " <td align=center><a href=\"quota_fixer.php?suppr=suppr";
 298           echo "&amp;partition=$partit";
 299           echo "&amp;nom=$nom";
 300           echo "\"><img src=\"/elements/images/edittrash.png\" alt=\"".gettext("Supprimer")."\" title=\"".gettext("Supprimer")."\" width=\"16\" height=\"16\" border=\"0\" /></a></td>";
 301           echo "\t</tr>\n";
 302  // }
 303      }
 304  
 305      //si aucun quota sur la partition, l'afficher
 306      //echo "valeur $i";
 307      if ($i==0){echo "<tr><td align=center>".gettext("Aucun quota fix&#233; sur cette partition")."</td></tr>";}
 308      echo "</table>\n";
 309      echo "</FORM>\n";
 310  
 311      //CI DESSUS AFFICHER LA PERIODE DE GRACE ACTUELLE
 312      echo "<H3> P&#233;riode de gr&#226;ce sur $partit : ";
 313      system("sudo repquota $partit|grep \"Block grace time\"|cut -b19-25|sed -e \"s/ //g\"|sed -e \"s/days/ jours/g\"|sed -e \"s/;//g\"|sed -e \"s/24:00/1 jour/g\"");
 314  
 315      //echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape('P&#233;riode durant laquelle l\'utilisateur est autoris&#233; &#224; d&#233;passer son quota. Au del&#224;, il devra redescendre en dessous de son quota pour r&#233;initialiser (instantan&#233;ment) sa p&#233;riode de gr&#226;ce. Dans le cas contraire, il ne pourra plus rien &#233;crire sur $partit";
 316  
 317      if ( "$partit" == "/home" ) {$resultat=mysql_query("select value from params where name='quota_warn_home'");}
 318      else
 319        {$resultat=mysql_query("select value from params where name='quota_warn_varse3'");}
 320      $line = mysql_fetch_assoc($resultat);
 321  
 322      //$test_exist=exec("cat /etc/cron.d/se3 | grep \"$(echo \"warn_quota.sh $partit\")\"");
 323  
 324      foreach ($line as $col_value) {
 325          if ( "$col_value" == "1" ) { 
 326              echo gettext(" avec message d'avertissement.<br>");
 327                          $warn="yes";
 328                  } else {
 329              echo " <font color=\"#FF0000\">sans  message d'avertissement.</font>\n";
 330                  echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('PARAMETRAGE FORTEMENT DECONSEILLE: en cas de d&#233;passement autoris&#233, l\'utilisateur ne sera pas pr&#233;venu qu\'il se situe au del&#224; de son quota. Il se trouvera bloqu&#233;, sans pr&#233;avis, &#224; la fin de la p&#233;riode de gr&#226;ce... Ce r&#233;glage revient plus ou moins &#224; ne pas autoriser de d&#233;passement temporaire de quota puisque l\'utilisateur n\'est pas averti...')")."\"><img name=\"action_image3\"  src=\"../elements/images/system-help.png\"></u>\n";
 331              }
 332      }
 333      // Insert ou update pour avertissement IE
 334          if ($warn=="yes") {  
 335              if (isset($browser)) {
 336                 $browser = preg_replace('/\\\++/','/', $browser); //gestion de \ qui passe mal (suppression des \\ en les rempla&#231;ant par un /)
 337  
 338              } else $browser="$quota_browser";
 339          // 
 340              $result=mysql_query("SELECT CleID FROM corresp WHERE Intitule='warnquotas'");
 341              if(mysql_num_rows($result)==0){
 342                      $query = "INSERT INTO corresp VALUES('','warnquotas','$browser $urlse3','','REG_SZ','systeme','','2000,XP,Vista,Seven','HKEY_CURRENT_USER\\\Software\\\Microsoft\\\Windows\\\CurrentVersion\\\Run\\\WarnQuota','Avertissement quota','config')";
 343                      mysql_query($query);
 344                      $result=mysql_query("SELECT CleID FROM corresp WHERE Intitule='warnquotas'");
 345              } 
 346      //            
 347              $row = mysql_fetch_row($result);
 348              $result=mysql_query("SELECT CleID FROM restrictions WHERE CleID='$row[0]'");
 349              //echo $row[0];
 350              if(mysql_num_rows($result)==0){
 351                      $query = "INSERT INTO restrictions VALUES('','$row[0]','overfill','$browser $urlse3','')";
 352  
 353              } 
 354              else {
 355                      $query = "UPDATE restrictions SET valeur='$browser $urlse3' where CleID='$row[0]'";
 356              }
 357              $result=mysql_query($query);
 358              //echo $result;
 359          } 
 360          else  {
 361                  $result=mysql_query("SELECT CleID FROM corresp WHERE Intitule='warnquotas'");
 362                  if(mysql_num_rows($result)!=0){
 363                      $row = mysql_fetch_row($result);
 364                      $result=mysql_query("SELECT CleID FROM restrictions WHERE CleID='$row[0]'");
 365                      if(mysql_num_rows($result)!=0){
 366                          $query="DELETE FROM restrictions WHERE cleID='$row[0]'";
 367                          $result=mysql_query($query);
 368                      }
 369                  }
 370              
 371              }
 372               
 373          
 374          echo "</h3>\n";
 375  
 376  //    echo "</center>\n";
 377  
 378  }//fin du for partition
 379  
 380  echo "<h1>".gettext(" Attribution (Modification) de quotas")."</h1>\n";
 381  echo "<FORM METHOD=\"post\" action=\"quota_fixer.php#attribution\">";
 382  
 383  //si 1er affichage, afficher /home
 384  if (!isset($partition)) {$partition ="/home";}
 385  
 386      //nouvelle presentation sous forme de tableau
 387      //preparation du tableau de parametres
 388      $parametre[1] = gettext("Modifier la partition :");
 389      $objet_var="<select name=\"partition\" onchange=submit() >\n";
 390      //creation du tableau des partitions
 391      $arr_parts = array("/home", "/var/se3");
 392      foreach ($arr_parts as $part) {
 393            $objet_var="$objet_var <option ";
 394            if ($part == $partition) {$objet_var="$objet_var selected"; }
 395            $objet_var="$objet_var> $part </option>\n";
 396      }
 397      $objet_var="$objet_var </select>\n";
 398      $objet[1] = "$objet_var"; 
 399      if ($partition == "/var/se3") {$help[1] = gettext("Rappel: fixer un quota sur /var/se3 limite &#224 la fois l\'espace disponible dans les lecteurs r&#233;seaux Classes et Docs qui constituent une seule et unique partition.");}
 400      else {$help[1] = gettext("Il est interdit de fixer un quota inf&#233;rieur &#224; 10 Mo sur la partition /home. En effet, cela pourrait cr&#233;er des dysfonctionnements: les quotas sont fix&#233;s pour tous les utilisateurs des groupes choisis sur la partition enti&#232;re: cela inclut notamment les r&#233;pertoires profile, etc...");}
 401  
 402      $parametre[2] = gettext("Indiquer l'espace maximum tol&#233;r&#233; en Mo (0 pour illimit&#233;) :");
 403      $objet[2] = "<INPUT TYPE=\"TEXT\" NAME=\"quota\" size=4>\n";
 404      if ($partition == "/var/se3") {$help_var=gettext("Saisir un entier strictement positif.");}
 405      else {$help_var=gettext("Il est interdit de fixer un quota inf&#233;rieur &#224; 10Mo sur la partition /home. En effet, cela pourrait cr&#233;er des dysfonctionnements: les quotas sont fix&#233;s pour tous les utilisateurs des groupes choisis sur la partition enti&#232;re: cela inclut notamment les r&#233;pertoires profile, etc...");}
 406      $help[2] = "$help_var";
 407  
 408      $parametre[3] = gettext("D&#233;passement temporaire autoris&#233; :");
 409      $arr_pourc = array("0 %", "10 %", "20 %", "30 %", "40 %", "50 %", "60 %", "70 %", "80 %", "90 %", "100 %");
 410      $objet_var="<select name=\"depassement\" >\n";
 411      foreach ($arr_pourc as $pourc) {
 412            $objet_var="$objet_var <option ";
 413            if ($pourc == "20 %") {$objet_var="$objet_var selected"; }
 414            $objet_var="$objet_var > $pourc </option>\n";
 415      }
 416      $objet_var="$objet_var </select>\n";
 417      $objet[3] = "$objet_var";
 418      $help[3] = gettext("Si le d&#233;passement est fix&#233; &#224; 0 %, l\'utilisateur sera bloqu&#233; au quota fix&#233; sans aucun pr&#233;avis et sans moyen d\'enregistrer son travail. A &#233;viter!");
 419  
 420      $parametre[4] = gettext("P&#233;riode de gr&#226;ce en jour(s) :");
 421      //$objet[4] = "<INPUT TYPE=\"TEXT\" NAME=\"grace\" size=4 value=".system("sudo repquota $partition|grep 'Block grace time'|cut -b19-25|sed -e 's/;//g'|sed -e 's/ //g'|sed -e 's/days//g'|sed -e 's/24:00/1/g'")." >"; 
 422      $help[4] = gettext("VALABLE POUR TOUTE LA PARTITION.");
 423  
 424      $parametre[5] = gettext("Avertir les utilisateurs en cas de d&#233;passement :");
 425  
 426       $objet_var = "<input type=\"checkbox\" checked";
 427   
 428       //$test_exist=exec("cat /etc/cron.d/se3 | grep \"$(echo \"warn_quota.sh $partition\")\"");
 429      // PERMET L'AFFICHAGE DE CE QU'IL Y A DEJA DE REGLE DANS MYSQL POUR LA PARTITION CONSIDEREE
 430      if ( "$partition" == "/home" ) {$resultat=mysql_query("select value from params where name='quota_warn_home'");}
 431      else
 432        {$resultat=mysql_query("select value from params where name='quota_warn_varse3'");}
 433      
 434      $line = mysql_fetch_assoc($resultat);
 435  //    foreach ($line as $col_value) {
 436  //        if ( "$col_value" == "1" ) {$objet_var="$objet_var checked ";}
 437  //    }
 438   
 439       //if ( $test_exist != "" ) {$objet_var="$objet_var checked ";}
 440   
 441       $objet_var="$objet_var name=\"";
 442         if ($partition == "/home") {
 443              $objet_var="$objet_var messtxt_home\">"; 
 444      } else {
 445              $objet_var="$objet_var messtxt_var_se3\">"; 
 446      }
 447      
 448      $objet[5] = "$objet_var";
 449      $help[5] = gettext("VALABLE POUR TOUTE LA PARTITION: Cr&#233;ation d\'un message d\'avertissement &#224; chaque ouverture de session pour tout utilisateur en d&#233;passement de quota.");
 450  
 451      $parametre[6] = gettext("Chemin du navigateur affichant les messages d'avertissement en cas de d&#233;passement :");
 452      //$value=exec("cat /home/templates/overfill/registre.zrn | grep \"WarnQuota @@@\" | cut -d \"@\" -f10 |cut -d \" \" -f2");
 453      $objet[6] = "<INPUT TYPE=\"TEXT\" NAME=\"browser\" value=\"$browser\" size=20>\n";
 454      $help[6] = gettext("Par d&#233;faut: la chaine de caractere \'iexplore\' fonctionne si internet explorer n\'est pas bloqu&#233; par une clef de registre. Sinon, le navigateur lynx convient en indiquant un chemin correct (par exemple, L:...lynx.exe). ATTENTION: firefox ne fonctionne pas si le quota est d&#233;pass&#233; sur /home car son profil y est stock&#233;. Utiliser firefoxportable sur L: par exemple.");
 455  
 456      // creation du tableau proprement dite
 457      $i=1;
 458      echo "<TABLE border=1 width=\"80%\">\n";
 459  
 460      foreach($parametre as $param){
 461          echo "<TR><td>$param</td><TD align=center>\n";
 462          // correction d'un bug de la fonction system( cmd, $var de sortie) qui ne fonctionne pas :s
 463          if ($i==4) {
 464              echo "<INPUT TYPE=\"TEXT\" NAME=\"grace\" size=4 value=";
 465                system("sudo repquota $partition|grep 'Block grace time'|cut -b19-25|sed -e 's/;//g'|sed -e 's/ //g'|sed -e 's/days//g'|sed -e 's/24:00/1/g'");
 466                echo " >";
 467          } else {echo "$objet[$i]";}
 468  
 469          echo "</TD><TD align=center><u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape('$help[$i]')\"><img name=\"action_image4\"  src=\"../elements/images/system-help.png\"></u></TD></TR>\n";
 470  
 471          if ($i==1) { 
 472              echo "</form>\n\n";
 473                echo "<FORM ACTION=\"quota_fixer.php?partition=$partition&valider";
 474                  //cree un repere valider_home ou valider_var_se3 pour savoir s'il faut lancer le script warn_quota_service.sh et sur lequel il faut le lancer
 475                if ($partition == "/home") {echo "_home";}
 476                else
 477                  {echo "_var_se3";}
 478                echo "=yes\" method=\"post\">\n";
 479            }
 480          
 481          $i=$i+1;
 482      }
 483  
 484      echo "</TABLE>\n\n";
 485      // echo "</center>\n";
 486  
 487      echo "<div align=center>";
 488      echo "<h4>".gettext("Fixer ce quota pour tous les membres des groupes suivants&nbsp;:");
 489      echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('Le quota fix&#233; d&#233;pendra des groupes d\'appartenance des utilisateurs: le quota effectif sera le plus grand des quotas applicables aux divers groupes. Par contre, si un quota est appliqu&#233; &#224; un utilisateur sp&#233;cifique, celui-ci est pr&#233;pond&#233;rant quelques soient ses groupes d\'appartenance.')")."\"><img name=\"action_image5\"  src=\"../elements/images/system-help.png\"></u>";
 490      echo "</h4></div>\n";
 491          // Etablissement des listes des groupes disponibles
 492          affiche_all_groups(center,user);
 493      
 494  echo "<div id=\"attribution\" align='center'><input type=\"submit\" value=\"".gettext("Valider")."\">
 495  <input type=\"reset\" value=\"".gettext("R&#233;initialiser")."\"></div>";
 496  echo "</form>";
 497  echo "</center>";
 498  //fin is_admin($login)
 499  
 500  include ("pdp.inc.php");
 501  
 502  ?>


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1