[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/var/www/se3/acls/ -> visuacls.php (source)

   1  <?php
   2  
   3  
   4  /**
   5  
   6  * Interface de gestion des acl
   7  * @Version $Id: visuacls.php 8553 2015-03-15 12:36:03Z plouf $ 
   8  
   9  
  10  * @Projet LCS / SambaEdu 
  11  
  12  * @auteurs  Equipe Tice academie de Caen
  13  
  14  * @Licence Distribue selon les termes de la licence GPL
  15  
  16  * @note 
  17  
  18  */
  19  
  20  /**
  21  
  22  * @Repertoire: acls
  23  * file: visuacls.php
  24  
  25  */    
  26  
  27  
  28  include  "entete.inc.php";
  29  include  "ihm.inc.php";
  30  include  "ldap.inc.php";
  31  
  32  require_once  ("lang.inc.php");
  33  bindtextdomain('se3-acls',"/var/www/se3/locale");
  34  textdomain ('se3-acls');
  35  
  36  
  37  if (is_admin("se3_is_admin",$login)=="Y") {
  38  
  39      // Aide
  40      $_SESSION["pageaide"]="ACL#En_utilisant_l.27interface_SambaEdu";
  41      
  42      $repertoire=isset($_POST['repertoire']) ? $_POST['repertoire'] : (isset($_GET['repertoire']) ? $_GET['repertoire'] : "");
  43      
  44      $type_fich=isset($_POST['type_fich']) ? $_POST['type_fich'] : (isset($_GET['type_fich']) ? $_GET['type_fich'] : "");
  45      
  46      $noms=isset($_POST['noms']) ? $_POST['noms'] : "";
  47      $propagation=isset($_POST['propagation']) ? $_POST['propagation'] : "";
  48      $choix=isset($_POST['choix']) ? $_POST['choix'] : "";
  49      $nouveau=isset($_POST['nouveau']) ? $_POST['nouveau'] : "";
  50      $nomformulaire=isset($_POST['nomformulaire']) ? $_POST['nomformulaire'] : array();
  51      $valide=isset($_POST['valide']) ? $_POST['valide'] : NULL;
  52      $nouveaulecture=isset($_POST['nouveaulecture']) ? $_POST['nouveaulecture'] : "";
  53      $nouveauecriture=isset($_POST['nouveauecriture']) ? $_POST['nouveauecriture'] : "";
  54      $nouveauexecution=isset($_POST['nouveauexecution']) ? $_POST['nouveauexecution'] : "";
  55      $nouveauheritage=isset($_POST['nouveauheritage']) ? $_POST['nouveauheritage'] : "";
  56      
  57  
  58      if (isset($valide)) {
  59      $nom = explode (",",$noms);
  60      $valeur = 0;
  61      
  62      if ($propagation == "oui") $propagation="-R";
  63      
  64      for ($loop=0; $loop < count ($nom) ; $loop++){
  65          $tri=explode (" ",$nom[$loop]);
  66          if ($nomformulaire[$valeur]== "oui") $lecture="r";
  67          else $lecture="-";
  68          $valeur = $valeur + 1;
  69          if ($nomformulaire[$valeur]== "oui") $ecriture="w";
  70          else $ecriture="-";
  71          $valeur = $valeur + 1;
  72          if ($nomformulaire[$valeur]== "oui") $execution="x";
  73          else $execution="-";
  74          $valeur = $valeur + 1;
  75          
  76          if ($tri[0] != "Heritage") {
  77          $defaut="non";
  78          if ($tri[0]=="Utilisateur") $type="u";
  79          elseif ($tri[0]=="Groupe") $type="g";
  80          elseif ($tri[0]=="Autres") $type="o";
  81          elseif ($tri[0]=="Proprietaire") $type="u";
  82          if ($nomformulaire[$valeur]== "oui") $effacer="eff";
  83          else $effacer="-m";
  84          $valeur = $valeur + 1;
  85          $nom1 = $tri[1];
  86          if ($tri[0]=="Autres" ||  $tri[0] == "Proprietaire" || $tri[1] == "proprietaire") {
  87              $nom1="x";
  88          }
  89          exec ("/usr/bin/sudo /usr/share/se3/scripts/acls.sh $effacer $type $nom1 $lecture $ecriture $execution \"$repertoire\" $defaut $propagation");
  90          
  91          }
  92          
  93          if ($tri[0] == "Heritage") {
  94              $defaut = "oui";
  95              if ($tri[1]=="utilisateur") $type="u";
  96              elseif ($tri[1]=="groupe") $type="g";
  97              elseif ($tri[1]=="autres") $type="o";
  98              elseif ($tri[1]=="proprietaire") $type="u";
  99              if ($nomformulaire[$valeur]== "oui") $effacer="effd";
 100              else $effacer="-m";
 101              $valeur = $valeur + 1;
 102              $nom1 = $tri[2];
 103              if ($tri[1]=="autres" ||  $tri[1] == "proprietaire" || $tri[2] == "proprietaire") {
 104                  $nom1="x";
 105              }
 106              exec ("/usr/bin/sudo /usr/share/se3/scripts/acls.sh $effacer $type $nom1 $lecture $ecriture $execution \"$repertoire\" $defaut $propagation");
 107          }
 108          
 109      }//for ($loop=0; $loop < count ($nom) ; $loop++){
 110      
 111      if ($nouveau != "") {
 112          $defaut = "non";
 113          $effacer="-m";
 114          if ($nouveaulecture == "oui") $lecture = "r";
 115          else $lecture="-";
 116          if ($nouveauecriture == "oui") $ecriture="w";
 117          else $ecriture="-";
 118          if ($nouveauexecution == "oui") $execution="x";
 119          else $execution="-";
 120          $type=$choix;
 121          $nom1=$nouveau;
 122          exec ("/usr/bin/sudo /usr/share/se3/scripts/acls.sh $effacer $type $nom1 $lecture $ecriture $execution \"$repertoire\" $defaut $propagation");
 123          if ( $nouveauheritage == "oui") {
 124          $defaut = "oui";
 125          exec ("/usr/bin/sudo /usr/share/se3/scripts/acls.sh $effacer $type $nom1 $lecture $ecriture $execution \"$repertoire\" $defaut $propagation");
 126          }
 127      }
 128      echo "<H1>".gettext("Attribution d'acls")."</H1><P>\n";
 129      echo gettext(" Les acls sont maintenant :")." <p>";
 130      
 131      }
 132      
 133      exec ("/usr/bin/sudo /usr/share/se3/scripts/getfacl.sh \"$repertoire\"");
 134      $acl = file("/tmp/test.tmp");
 135      $a = 0;
 136      if (!isset($valide)) {    
 137      echo "<H1>".gettext("Attribution d'acls")."</H1><P>";    
 138      echo gettext("Acls du r&#233;pertoire")." $repertoire";
 139      echo "<form name=\"visu\" action=\"visuacls.php\" method=\"post\">\n";
 140      }
 141      echo "<table border=\"0\" cellspacing=\"\">
 142      <thead>
 143      <tr>
 144      <B><td>".gettext("Noms")."</td>
 145      <td>".gettext("Lecture")."</td>
 146      <td>".gettext("Ecriture")."</td>
 147      <td>".gettext("Ex&#233;cution")."</td>\n";
 148      if (!isset($valide)) {
 149      echo "<td>".gettext("Supprimer")."</td>\n";
 150      }
 151      echo "</B></tr>
 152      </thead>
 153      <tbody><tr>\n";
 154      
 155      $boucle = count ($acl) - 1;    
 156      for ($loop=1 ;$loop < $boucle; $loop++) {
 157      
 158      $test=explode(":",$acl[$loop]);
 159      
 160      for ($i=0 ; $i < count ($test) ; $i++) {
 161          $test[$i]=trim($test[$i]);
 162      }
 163      
 164      if ( ! ($test[0]=="# owner" || $test[0]=="# group" || $test[0]=="mask" || ($test[0]=="default"&&$test[1]=="mask"))) {
 165          echo "<td valign=\"top\">\n";
 166      }
 167      
 168      if ($test[0]=="# owner") {
 169          $proprio=$test[1];
 170      }
 171      if ($test[0]=="# group") {
 172          $groupeproprio=$test[1];
 173      }
 174      if ($test[0]=="other") {     
 175          $nom[$loop]="Autres";
 176          echo "$nom[$loop]";
 177          $lecture=substr($test[2],0,1);
 178          $ecriture=substr($test[2],-2,1);
 179          $execution=substr($test[2],-1);
 180      }
 181      if ($test[0]=="user") {
 182          if ($test[1]!= "") {
 183              $nom[$loop]="Utilisateur ".$test[1];
 184              echo "$nom[$loop]";
 185              $lecture=substr($test[2],0,1);
 186              $ecriture=substr($test[2],-2,1);
 187              $execution=substr($test[2],-1);
 188          }
 189          if ($test[1] == "") {
 190              $nom[$loop]="Proprietaire ".$proprio;
 191              echo "$nom[$loop]"; 
 192              $lecture=substr($test[2],0,1);
 193              $ecriture=substr($test[2],-2,1);
 194              $execution=substr($test[2],-1);
 195          }
 196      }
 197      if ($test[0]=="group") {
 198          if ($test[1]!= "") {
 199              $nom[$loop]="Groupe ".$test[1];
 200              echo "$nom[$loop]";
 201              $lecture=substr($test[2],0,1);
 202              $ecriture=substr($test[2],-2,1);
 203              $execution=substr($test[2],-1);
 204          }
 205          if ($test[1] == "") {
 206              $nom[$loop]="Groupe proprietaire ".$groupeproprio;
 207              echo "$nom[$loop]";
 208              $lecture=substr($test[2],0,1);
 209              $ecriture=substr($test[2],-2,1);
 210              $execution=substr($test[2],-1);
 211          }
 212      }
 213      
 214      elseif ($test[0]=="default") {
 215          
 216          if ($test[1]=="other") {
 217              $nom[$loop]="Heritage autres";
 218              echo "$nom[$loop]";
 219              $lecture=substr($test[3],0,1);
 220              $ecriture=substr($test[3],-2,1);
 221              $execution=substr($test[3],-1);
 222          }
 223          if ($test[1]=="user") {
 224              if ($test[2]!= "") {
 225                  $nom[$loop]="Heritage utilisateur ".$test[2];
 226                  echo "$nom[$loop]";
 227                  $lecture=substr($test[3],0,1);
 228                  $ecriture=substr($test[3],-2,1);
 229                  $execution=substr($test[3],-1);
 230              }
 231              if ($test[2] == "") {
 232                  $nom[$loop]="Heritage proprietaire ".$proprio;
 233                  echo "$nom[$loop]"; 
 234                  $lecture=substr($test[3],0,1);
 235                  $ecriture=substr($test[3],-2,1);
 236                  $execution=substr($test[3],-1);
 237              }
 238          }
 239          if ($test[1]=="group") {
 240              if ($test[2]!= "") {
 241                  $nom[$loop]="Heritage groupe ".$test[2];
 242                  echo "$nom[$loop]";
 243                  $lecture=substr($test[3],0,1);
 244                  $ecriture=substr($test[3],-2,1);
 245                  $execution=substr($test[3],-1);
 246              }
 247              if ($test[2] == "") {
 248                  $nom[$loop]="Heritage groupe proprietaire ".$groupeproprio;
 249                  echo "$nom[$loop]";
 250                  $lecture=substr($test[3],0,1);
 251                  $ecriture=substr($test[3],-2,1);
 252                  $execution=substr($test[3],-1);
 253              }
 254          }
 255      }
 256          
 257      if ( ! ($test[0]=="# owner" || (($test[0]=="default")&&($test[1]=="mask")) || $test[0]=="# group" || $test[0]=="mask")) {
 258          echo "</td>\n";     
 259          
 260          $nomformulaire[$a] = "lecture".$nom[$loop] ;
 261          if ($lecture =="r") {
 262          echo "<td valign=\"top\">\n<INPUT TYPE=\"checkbox\" NAME=\"nomformulaire[$a]\" VALUE=\"".gettext("oui")."\" CHECKED>  </td>\n";
 263          }
 264          else  echo "<td valign=\"top\">\n<INPUT TYPE=\"checkbox\" NAME=\"nomformulaire[$a]\" VALUE=\"".gettext("oui")."\"></td>\n";
 265          $a= $a +1;
 266          $nomformulaire[$a] = "ecriture".$nom[$loop];
 267          
 268          if ($ecriture =="w") {
 269              echo "<td valign=\"top\">\n<INPUT TYPE=\"checkbox\" NAME=\"nomformulaire[$a]\" VALUE=\"".gettext("oui")."\" checked > </td>\n";
 270          }
 271          else echo "<td valign=\"top\">\n<INPUT TYPE=\"checkbox\" NAME=\"nomformulaire[$a]\" VALUE=\"".gettext("oui")."\"></td>\n";
 272          
 273          $a = $a +1;    
 274          $nomformulaire[$a] = "execution".$nom[$loop];
 275          
 276          if ($execution =="x") {
 277              echo "<td valign=\"top\">\n<INPUT TYPE=\"checkbox\" NAME=\"nomformulaire[$a]\" VALUE=\"".gettext("oui")."\" checked></td>\n";
 278          }
 279          else echo "<td valign=\"top\">\n<INPUT TYPE=\"checkbox\" NAME=\"nomformulaire[$a]\" VALUE=\"".gettext("oui")."\"></td>\n";
 280          
 281          $a= $a + 1;
 282          $nomformulaire[$a] = "supprimer".$nom[$loop];    
 283          if (!(($test[0] == "user"&&$test[1]=="") || ($test[0] == "group"&& $test[1]=="") || $test[0]=="other"  || ($test[1] == "user"&&$test[2]=="") || ($test[1] == "group"&& $test[2]=="") || $test[1]=="other" )) {
 284          if (!isset($valide)) {
 285              echo "<td valign=\"top\">\n<INPUT TYPE=\"checkbox\" NAME=\"nomformulaire[$a]\" VALUE=\"".gettext("oui")."\"></td>\n";
 286          }
 287          }
 288          $a= $a +1;     
 289          echo  "</tr>\n";
 290      }
 291      }
 292      
 293      $noms = implode(",",$nom);     
 294      echo "</tbody></table>\n";
 295      echo "<br /><br />\n";
 296      if (!isset($valide)) {
 297      echo "<TD><B>".gettext("Ajout d'un nouvel utilisateur ou groupe :")."</B></TD>\n";
 298      echo "<table border=\"0\">\n";
 299      echo "<TR><TD>".gettext("Nom")."</td> <td valign=\"top\"><input type=\"text\" name=\"nouveau\" value=\"$nouveau\" size=\"20\" ></TD>\n";
 300      echo "<TD><input type=\"button\" value=\"".gettext("Recherche dans l'annuaire")."\" onclick=\"popuprecherche('searchacls.php','popuprecherche','width=500,height=500');\"></TD></TR>\n";    
 301      echo "<TR><TD>".gettext("Utilisateur")."</td><td valign=\"top\"><input type=\"radio\" name=\"choix\" value=\"u\"></td></tr>
 302          <TR><TD>".gettext("Groupe")."</td><td valign=\"top\"><input type=\"radio\" name=\"choix\" value=\"g\"></td></tr>\n";
 303      
 304      echo "<TR><TD>".gettext("Lecture")."</td> <td valign=\"top\">\n<INPUT TYPE=\"checkbox\" NAME=\"nouveaulecture\" VALUE=\"oui\"></td></tr>\n";
 305      echo "<TR><TD>".gettext("Ecriture")."</td> <td valign=\"top\">\n<INPUT TYPE=\"checkbox\" NAME=\"nouveauecriture\" VALUE=\"oui\"></td></tr>\n";
 306      echo "<TR><TD>".gettext("Execution")."</td> <td valign=\"top\">\n<INPUT TYPE=\"checkbox\" NAME=\"nouveauexecution\" VALUE=\"oui\"></td></tr>\n";
 307      /*
 308      //Stephane Boireau (21/03/2006)
 309      //Modification de la variable 'type' en 'type_fich'
 310      //parce que la variable 'type' est utilisee avec
 311      //plusieurs autres significations dans la page courante (visuacls.php)
 312      if ($type=="repertoire"){
 313      */
 314      if ($type_fich=="repertoire"){
 315          echo "<TR><TD>".gettext("Propagation de l'acl par H&#233;ritage")."</td>\n";
 316          echo "<td valign=\"top\">\n<INPUT TYPE=\"checkbox\" NAME=\"nouveauheritage\" VALUE=\"oui\"></td></tr>\n";
 317      }
 318      echo "</table><br />\n";
 319      //if ($type=="r&#233;pertoire"){
 320      if ($type_fich=="repertoire"){
 321          echo "<B><br />".gettext("Appliquer les changements aux sous dossiers et fichiers d&#233;j&#224;  existants")." <B><INPUT TYPE=\"checkbox\" NAME=\"propagation\" VALUE=\"".gettext("oui")."\"><br /><br />\n";
 322      }
 323      echo "<input type=\"hidden\" name=\"noms\" value=\"$noms\">" ;
 324      echo "<input type=\"hidden\" name=\"repertoire\" value=\"$repertoire\">" ;
 325      echo "<input type=\"hidden\" name=\"type_fich\" value=\"$type_fich\">" ;
 326      echo "<input type=\"hidden\" name=\"valide\" value=\"$valide\">" ;
 327      echo "<input type=\"submit\" value=\"".gettext("valider les acls")."\">\n";
 328      echo "</form>\n";
 329      }
 330      
 331      if (isset($valide)) {
 332          /*
 333          //Stephane Boireau (21/03/2006)
 334          //Ajout de la variable 'type_fich' pour conserver la possibilite d'Heritage lors d'un clic sur 'Modifier a nouveau'
 335          //echo "<a  href=\"visuacls.php?repertoire=$repertoire\" > Modifier a nouveau </a>";   }
 336          */
 337          echo "<a  href=\"visuacls.php?repertoire=$repertoire&type_fich=$type_fich\" >".gettext(" Modifier &#224; nouveau")." </a>";   
 338      }
 339      
 340  }//fin is_admin
 341  else echo gettext("Vous n'avez pas les droits necessaires pour ouvrir cette page...");
 342  include ("pdp.inc.php");
 343  
 344  ?>


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