[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/var/www/se3/parcs/ -> delegate_parc.php (source)

   1  <?php
   2  
   3  
   4     /**
   5     
   6     * permet d'attribuer la gestion d'un template a un utilisateur
   7     * @Version $Id: delegate_parc.php 6410 2011-06-18 15:50:30Z crob $ 
   8     
   9     * @Projet LCS / SambaEdu 
  10     
  11     * @auteurs Equipe Tice academie de Caen
  12     * @auteurs sandrine dangreville matice creteil aout 2005
  13  
  14     * @Licence Distribue selon les termes de la licence GPL
  15     
  16     * @note 
  17     
  18     */
  19  
  20     /**
  21  
  22     * @Repertoire: parcs/
  23     * file: delegate_parc.php
  24  
  25    */    
  26  
  27  
  28  
  29  
  30  include  "entete.inc.php";
  31  include  "ldap.inc.php";
  32  include  "ihm.inc.php";
  33  
  34  // Traduction
  35  require_once  ("lang.inc.php");
  36  bindtextdomain('se3-parcs',"/var/www/se3/locale");
  37  textdomain ('se3-parcs');
  38  
  39  
  40  /**
  41  
  42  * Met a jour le fichier /var/se3/unattended/install/wpkg/droits.xml pour wpkg
  43  
  44  * @Parametres
  45  * @Return 
  46  */
  47  
  48  
  49  function update_wpkg() {
  50      // Met a jour le fichier /var/se3/unattended/install/wpkg/droits.xml pour wpkg
  51      $wpkgDroitSh="/usr/share/se3/scripts/update_droits_xml.sh";
  52      if (file_exists($wpkgDroitSh)) exec ("$wpkgDroitSh");
  53  }
  54  
  55  
  56  /**
  57  
  58  * Affiche un bouton retour vers la page delegate_parc.php
  59  
  60  * @Parametres
  61  * @Return
  62  */
  63  
  64  function retour_delegate() {
  65      echo "<p><a href=\"delegate_parc.php?action=liste\">".gettext("Voir la liste des d&#233;l&#233;gations en cours")."</a></p>\n";
  66  }
  67  
  68  
  69  
  70  /**
  71  
  72  * test si $salles a un template et retourn true
  73  
  74  * @Parametres
  75  * @Return  true si on a bien un template
  76  */
  77  
  78  function is_template($salles) {
  79      if(is_dir("/home/templates/".$salles)) return true;
  80  }
  81  
  82  
  83  
  84  if (is_admin("computers_is_admin",$login)=="Y") {
  85  
  86      // Aide
  87      //aide
  88      $_SESSION["pageaide"]="Gestion_des_parcs#D.C3.A9l.C3.A9gation_de_parc";
  89  
  90      // Titre
  91      echo "<h1>".gettext("D&#233;l&#233;gation de parc")."</h1>";
  92  
  93      // On teste si il existe des parcs
  94  
  95      $list_parcs=search_machines("objectclass=groupOfNames","parcs");
  96      if ( count($list_parcs)==0) {
  97          echo "<br><br>";
  98          echo gettext("Il n'existe aucun parc. Vous devez d'abord cr&#233;er un parc");
  99          exit;
 100      }    
 101  
 102      if (!(is_admin("computers_is_admin",$login)=="Y") and (!is_admin("parc_can_manage",$login)=="Y")) {
 103          echo gettext("Vous n'avez pas les droits n&#233;cessaires pour ouvrir cette page...");
 104          exit;
 105      }
 106  
 107      //************************Definition des variables*******************
 108      $user=isset($_GET['nouveau']) ? $_GET['nouveau'] : NULL;
 109      $salles=isset($_POST['salles']) ? $_POST['salles'] : (isset($_GET['salles']) ? $_GET['salles'] : NULL);
 110      $action=isset($_POST['action']) ? $_POST['action'] : (isset($_GET['action']) ? $_GET['action'] : "");
 111      $nouveau=isset($_GET['nouveau']) ? $_GET['nouveau'] : NULL;
 112  
 113      $template=is_template($salles);
 114  
 115      //test pour savoir si on a choisi un parc ou un template ( pour affichage)
 116      if ($template) {
 117          $aide= aide(gettext("Si vous avez choisi un template et une d&#233;l&#233;gation forte, ceci implique que vous voulez donnez acc&#232;s au fichier logon.bat et au menu Clients Windows &#224; cet utilisateur."),"<img src=\"../elements/images/system-help.png\" alt=\"\" />");
 118          $mot="template";
 119      } else { $mot="parc"; }
 120  
 121      $parcs=array();
 122  
 123      switch ($action) {
 124      //************Voir les delegations en cours***************************
 125      default:
 126          if ((is_admin("computers_is_admin",$login)=="N") and (is_admin("parc_can_manage",$login)=="N")) { exit; }
 127  
 128          echo "<h3>".gettext("D&#233;l&#233;gations en cours")." </h3>";
 129      
 130          if (is_admin("computers_is_admin",$login)=="Y") {
 131              $query="select * from delegation order by login asc"; 
 132          } else {
 133              $parc_du_login=list_parc_delegate($login);
 134          
 135              foreach ($parc_du_login as $parc) {
 136                  if ($ajout_parc) {
 137                      $ajoutparc=$ajoutparc." and parc='$parc' "; 
 138                  } else { $ajoutparc=" parc='$parc' "; }
 139              }
 140              $query="select * from delegation  where $ajoutparc order by login asc;";
 141              // echo $query;
 142          }
 143  
 144          $result=mysql_query($query) or die("Impossible d'acc&#233;der &#224; la table");
 145          $ligne=mysql_num_rows($result);
 146  
 147          if ($ligne==0) {
 148              echo gettext("Aucune d&#233;l&#233;gation en cours");
 149          } else {
 150              echo "<table border=1 align=center width=\"50%\">\n";
 151              echo "<tr><td align=center class=menuheader colspan=\"6\" height=\"30\" >".gettext("R&#233;capitulatif des d&#233;l&#233;gations par parc/template")."</td>\n";
 152              echo "</tr>\n";
 153              echo "<tr><td class=menuheader height=\"30\" align=center>".gettext("Utilisateur")."</td>\n";
 154              echo "<td class=menuheader align=center>".gettext("Parc/Template")."</td>\n";
 155              echo "<td class=menuheader colspan=3 align=center>".aide(gettext("Deux niveaux sont possibles par parc: <ul><li>D&#233;l&#233;gation forte: on peut agir sur le parc</li><li>D&#233;l&#233;gation faible: on peut voir des informations sur le parc</li></ul>"),gettext("Niveau de d&#233;l&#233;gation"))."</td></tr>\n";
 156              $liste_delegate = array();;
 157  
 158              //$last_user="";
 159              while ($row=mysql_fetch_row($result)) {
 160                  if ((isset($last_user)) and ($last_user) and ($last_user<>$row[1])) { echo "<tr><td class=menuheader colspan=\"6\"></td></tr>\n";}
 161                  array_push($liste_delegate,$row[1]);
 162                  echo "<tr><td align=center>".$row[1]."</td>\n";
 163                  echo "<td align=center>".$row[2]."</td>\n";
 164                  echo "<td align=center>";
 165                  if ($row[3]=="manage") { 
 166                      echo gettext("D&#233;l&#233;gation forte")."</td>"; 
 167                      if (is_admin("computers_is_admin",$login)=="Y") {
 168                          echo "<td align=center><a href=\"delegate_parc.php?nouveau=$row[1]&salles=$row[2]&action=view\">";
 169                          echo "<img src=\"../elements/images/stock_bottom.png\" alt=\"".gettext("Diminuer le niveau de d&#233;l&#233;gation")."\" title=\"".gettext("Diminuer le niveau de d&#233;l&#233;gation")."\" width=\"16\" height=\"16\" border=\"0\" /></a></td>\n";
 170                          echo "</td>\n";
 171                      }
 172                  }
 173  
 174                  if ($row[3]=="view") { 
 175                      echo gettext("D&#233;l&#233;gation faible")."</td>\n";
 176                      
 177                      if (is_admin("computers_is_admin",$login)=="Y") { 
 178                          echo"<td align=center><a href=\"delegate_parc.php?nouveau=$row[1]&salles=$row[2]&action=manage\">";
 179                          echo "<img src=\"../elements/images/stock_top.png\" alt=\"".gettext("Augmenter le niveau de d&#233;l&#233;gation")."\" title=\"".gettext("Augmenter le niveau de d&#233;l&#233;gation")."\" width=\"16\" height=\"16\" border=\"0\" /></a></td>\n";
 180                          echo "</td>\n";
 181                      }
 182                  }
 183  
 184                  if ((is_admin("computers_is_admin",$login)=="Y") or ((this_parc_delegate($login,$row[2],"manage")) and ($row[3]=="view"))) {
 185                      echo "<td align=center><a href=\"delegate_parc.php?nouveau=$row[1]&salles=$row[2]&action=nodelegate\">";
 186                      echo "<img src=\"../elements/images/edittrash.png\" alt=\"".gettext("Supprimer cette d&#233l&#233gation")."\" title=\"".gettext("Supprimer cette d&#233;l&#233;gation")."\" width=\"16\" height=\"16\" border=\"0\" /></a></td>\n";
 187                      echo "</td>\n";
 188                  } else { echo "<td>&nbsp;</td>\n"; }
 189  
 190                  //echo "<td align=center><a href=\"delegate_parc.php?nouveau=$row[1]&salles=$row[2]&action=manage\"><img src=\"../elements/images/stock_top.png\" alt=\"\" title=\"Augmenter le niveau de d&#233;l&#233;gation\" width=\"16\" height=\"16\" border=\"0\" /></a></td></td>";
 191                  //echo "<td align=center><a href=\"delegate_parc.php?nouveau=$row[1]&salles=$row[2]&action=view\"><img src=\"../elements/images/stock_bottom.png\" alt=\"\" title=\"Diminuer le niveau de d&#233;l&#233;gation\" width=\"16\" height=\"16\" border=\"0\" /></a></td></td>";
 192  
 193                  echo"</tr>";
 194                  $last_user=$row[1];
 195              }
 196              echo "</table><br><br>\n";
 197          }
 198          include ("pdp.inc.php");
 199          //break;
 200  
 201          //*******************Choix d'une salle********************************
 202          if (!$salles) {
 203              //if (is_admin("computers_is_admin",$login)=="Y") { echo "<h1>D&#233;l&#233;gations</h1><a href=\"delegate_parc.php?action=liste\">Voir les d&#233;l&#233;gations en cours</a>"; }
 204  
 205              //choix du template
 206              echo "<h3>".gettext("Choisir un nouveau parc &#224; d&#233;l&#233;guer")." </h3>";
 207  
 208              $list_parcs=search_machines("objectclass=groupOfNames","parcs");
 209              sort($list_parcs);
 210  
 211              echo "<FORM method=\"post\" action=\"delegate_parc.php\">\n";
 212              echo "<input type=\"hidden\" name=\"action\" value=\"new\" />";    
 213              echo "<SELECT NAME=\"salles\" SIZE=\"1\" onchange=submit()>";
 214              echo "<option value=\"\">S&#233;lectionner</option>";
 215              if ( count($list_parcs)>0) {
 216                  for ($loop=0; $loop < count($list_parcs); $loop++) {
 217                      if ((is_admin("computers_is_admin",$login)=="Y") or (this_parc_delegate($login,$list_parcs[$loop]["cn"],"manage"))) {
 218                          array_push($parcs,$list_parcs[$loop]["cn"]); 
 219                          echo "<option value=\"".$list_parcs[$loop]["cn"]."\"";
 220                          if ((isset($parc))&&($parc==$list_parcs[$loop]["cn"])) { echo " selected"; }
 221                          echo ">".$list_parcs[$loop]["cn"]."\n";
 222                          echo "</option>";
 223                      }
 224                  }
 225              }
 226  
 227              echo "</SELECT>&nbsp;&nbsp;\n";
 228              
 229              echo "<u onmouseover=\"return escape".gettext("('Un parc correspond &#224; un groupe de machines. <br>Il peut vous servir &#224; regrouper vos machines (par salle par exemple).<br>Une machine peut appartenir &#224; plusieurs parcs en fonction de vos besoins. Il peut &#234;tre li&#233; &#224; un <font color=#FF0000>template</font> du m&#234;me nom si vous avez cr&#233;&#233; un r&#233;pertoire correspondant dans le r&#233;pertoire Admhomes/templates. Vous pourrez alors agir sur les machines du parc en utilisant les possibilit&#233;s des templates.')")."\"><img name=\"action_image3\"  src=\"../elements/images/system-help.png\" alt=\"help\"></u> ";
 230  
 231              echo "</form>\n";
 232              
 233              // Affiche les templates a deleguer
 234              if (is_admin("computers_is_admin",$login)=="Y")  {
 235                  echo "<h3>".gettext("Choisir un template &#224; d&#233;l&#233;guer")."</h3>";
 236                  $handle=opendir('/home/templates');
 237                  
 238                  echo "<FORM method=\"post\" action=\"delegate_parc.php\">\n";
 239                  echo "<input type=\"hidden\" name=\"action\" value=\"new\" />";
 240                  echo "<SELECT NAME=\"salles\" SIZE=\"1\" onchange=submit()>";
 241                  echo "<option value=\"\">S&#233;lectionner</option>";
 242  
 243                  while ($file = readdir($handle)) {
 244                      if ($file<>'.' and $file<>'..' and $file<>'registre.vbs' and $file<>'skeluser') {
 245                          if  ((is_admin("computers_is_admin",$login)=="Y") and (!in_array($file,$parcs))) { 
 246                              echo "<option value=\"$file\">$file</option>";
 247                              $test_affiche++;
 248                          }
 249                      }
 250                  }
 251                  echo "</select>\n";
 252                  echo "<u onmouseover=\"return escape".gettext("('Un template peut correspondre &#224; un groupe de machines, un groupe de personnes.Il permet d\'agir sur le login et sur le bureau de l\'utilisateur. Les templates s\'appliquent dans l\'ordre suivant: <ul><li>base</li><li> groupe</li><li> parcs</li></ul>. Il est possible de faire des doubles templates de type:<ul><li> utilisateur@@machine</li><li> utilisateur@@parc_machine</li><li> groupe_utilisateur@@machine</li><li> groupe_utilisateur@@parc_machine</li></ul> N\'h&#233;sitez pas &#224; consulter la documentation sur le site sambaedu.org , rubrique Point de vue de l\'administrateur, Le r&#233;pertoire templates.')")."\"><img name=\"action_image2\"  src=\"../elements/images/system-help.png\" alt=\"help\"></u> ";
 253                  echo "</form>\n";
 254                  closedir($handle); 
 255              }
 256          }
 257          break;
 258  
 259      //*********************Choix d'un utilisateur******************************
 260      case "new":
 261          if (!$nouveau) {   //choix du user
 262              echo "<h3>".gettext("Vous avez choisi de d&#233;l&#233;guer la gestion de")." $salles $aide";
 263              echo "</h3><form action=\"delegate_parc.php\" name=\"visu\" method=\"get\">\n";
 264              echo gettext("Indiquez un utilisateur : ");
 265              echo "<input type=\"text\" name=\"nouveau\" value=\"$nouveau\" size=\"20\" >\n";
 266              echo "<input type=\"hidden\" name=\"salles\" value=\"$salles\" />";
 267  
 268              echo "<input type=\"button\" value=\"Recherche \" onclick=\"popuprecherche('search_user.php','popuprecherche','width=500,height=500');\">";
 269              echo "<br><br>  ";
 270              
 271              if (is_admin("computers_is_admin",$login)=="Y") {
 272                  echo "<input type=\"radio\" name=\"action\" id=\"action_manage\" value=\"manage\"  >\n";
 273                  echo "<label for='action_manage'>".gettext("D&#233;l&#233;guer totalement la gestion de")." <b> $salles </b></label><br>\n";
 274              }
 275  
 276              if ((is_admin("computers_is_admin",$login)=="Y") or (this_parc_delegate($login,$salles,"manage")))  {
 277                  //pour les templates, on est automatiquement dans une delegation forte !!!!!!!!!!!!
 278                  //en effet, la delegation sur les templates donne acces a logon.bat et a clients windows
 279                  //des qu'un parc a un template associe il est considere comme un template
 280                  //if (is_parc($salles)) {
 281                  echo "<input type=\"radio\" name=\"action\" id=\"action_view\" value=\"view\" CHECKED />\n";
 282                  echo "<label for='action_view'>".gettext("Permettre &#224; l'utilisateur de suivre le parc ( pas d'action possible)")."</label>";
 283                  //}
 284                  echo "<br><input type=\"radio\" name=\"action\" id=\"action_nodelegate\" value=\"nodelegate\">\n";
 285                  echo "<label for='action_nodelegate'>".gettext("Retirer la d&#233;l&#233;gation de")." <b> $salles </b> ".gettext("pour cet utilisateur")."</label>";
 286              }
 287  
 288              echo"<br><br><input type=\"submit\" name=\"submit\" value=\"".gettext("Envoyer")."\" />\n";
 289              echo "</form>\n";
 290          }
 291          break;
 292  
 293      //**********************************action manage***********************
 294      case "manage":
 295          //********************************action commun a: manage, view, nodelegate
 296          if (!($nouveau) or (!$salles)) { 
 297              echo gettext("Vouz devez choisir un")." $mot ".gettext("et un utilisateur");
 298              retour_delegate(); 
 299              exit ;
 300          }
 301  
 302          echo "<h2>".gettext("D&#233l&#233gation du")." $mot $salles $aide</h2>\n";
 303          
 304          if (is_admin("computers_is_admin",$user)=="Y") { 
 305              echo "<font color=#FF0000>".gettext("Cet utilisateur b&#233;n&#233;ficie du  droit computers_is_admin , il a d&#233;j&#224; tous les droits sur les parcs et les templates")."</font><br>";
 306          }
 307  
 308          if (is_admin("computers_is_admin",$login)=="N") { exit; }
 309          
 310          if(@is_dir("/home/$user")) {
 311          }  else  {
 312              echo "<font color=#FF0000>".gettext("Cet utilisateur n'a pas de r&#233;pertoire personnel. <br> Il est impossible de placer le raccourci du")." $mot ".gettext("sur son bureau.<BR> Demandez &#224; cet utilisateur de se connecter au moins une fois sur le domaine.")."</font>";
 313              exit;
 314          }
 315  
 316          if (is_admin("parc_can_manage",$user)=="Y") {
 317              echo "<p>".gettext("Cet utilisateur b&#233n&#233ficie d&#233;j&#224; d'une d&#233;l&#233;gation forte")."</p>";
 318          } else {
 319              $right="parc_can_manage";
 320              $cDn = "uid=$user,$peopleRdn,$ldap_base_dn";
 321              $pDn = "cn=$right,$rightsRdn,$ldap_base_dn";
 322              $pDndel="cn=parc_can_view,$rightsRdn,$ldap_base_dn";
 323              exec ("/usr/share/se3/sbin/groupAddEntry.pl \"$cDn\" \"$pDn\"");
 324              //   exec ("/usr/share/se3/sbin/groupDelEntry.pl \"$cDn\" \"$pDndel\"");
 325  
 326              echo gettext("La d&#233;l&#233;gation forte (parc_can_manage) est prise en compe: Plus d'&#233;l&#233;ments du menu sont accessibles &#224;")." <b>$user </b> ".gettext("dans")." <b>$salles</b><br>\n";
 327              echo "<ul><li>".gettext("Clients Windows")."</li>\n";
 328              echo "<li>".gettext("Inventaire")."</li>\n";
 329              echo "<li>.....</li></ul><br>";
 330              // echo "Le droit delegation faible ( parc_can_view) a ete retire";
 331          }
 332  
 333  
 334          //ajout dans la table delegation si necessaire
 335          $query="select parc from delegation where login='$user' and parc='$salles';";
 336          $result= mysql_query($query);
 337      
 338          if ($result) { 
 339              $ligne= mysql_num_rows($result);
 340              if ($ligne>0) {
 341                  if (is_template($salles)) { 
 342                  exec ("/usr/bin/sudo /usr/share/se3/scripts/delegate_parc.sh \"$salles\" \"$user\" \"nodelegate\""); 
 343              }
 344  
 345                  echo "<p><font color=#FF0000>".gettext("L'utilisateur")." <b>$user</b> ".gettext("avait d&#233;j&#224; une d&#233;l&#233;gation sur ce")." $mot</font></p>\n";
 346                  $query_suppr="delete from delegation where login='$user' and parc='$salles';";
 347                  $resul_suppr=mysql_query($query_suppr);
 348              }
 349      
 350              $query_verif="select parc from delegation where login='$user' and niveau='view';";
 351              $result_verif= mysql_query($query_verif);
 352      
 353              if ($result_verif) {
 354                  $ligne_verif= mysql_num_rows($result_verif);
 355                  if ($ligne_verif==0) {
 356                      $right="parc_can_view";
 357                      $cDn = "uid=$user,$peopleRdn,$ldap_base_dn";
 358                      $pDn = "cn=$right,$rightsRdn,$ldap_base_dn";
 359                      exec ("/usr/share/se3/sbin/groupDelEntry.pl \"$cDn\" \"$pDn\""); 
 360                  }
 361              }
 362          }
 363          $query_insert="Insert into delegation (ID,login,parc,niveau) VALUES ('','$user','$salles','manage');";
 364          $result_insert=mysql_query($query_insert) or die ("Erreur d'&#233;criture dans la table");
 365  
 366          if ($template) {
 367              //echo "/usr/bin/sudo /usr/share/se3/scripts/delegate_parc.sh \"$salles\" \"$user\" \"delegate\"";
 368              exec ("/usr/bin/sudo /usr/share/se3/scripts/delegate_parc.sh \"$salles\" \"$user\" \"delegate\"");
 369              echo "<br><h3><b>$user</b>".gettext("verra &#233;galement appara&#238;tre dans Mes Documents/D&#233;l&#233;gation le r&#233;pertoire")." <b> $salles </b> ".gettext("pour pouvoir g&#233;rer les scripts de d&#233;marrage et les ic&#244;nes des machines du parc")."  $salles .</h3><br>";
 370          }
 371          update_wpkg();
 372          retour_delegate();
 373          break;
 374  
 375  
 376      //**************************************action nodelegate********************************************
 377      case "nodelegate":
 378  
 379      //********************************action commun a: manage, view, nodelegate
 380          if (!($nouveau) or (!$salles)) { 
 381              echo gettext("Vouz devez choisir un")." $mot ".gettext("et un utilisateur");
 382              retour_delegate();
 383              exit ;
 384          }
 385  
 386          echo "<h2>".gettext("D&#233l&#233gation de parcs")."</h2>\n";
 387              
 388          if (is_admin("computers_is_admin",$user)=="Y") { 
 389              echo "<font color=#FF0000>".gettext("Cet utilisateur b&#233;n&#233;ficie du  droit computers_is_admin , il a d&#233;j&#224; tous les droits sur les parcs et les templates")."</font><br>";
 390          }
 391  
 392          //retirer le champ dans la table
 393          $query="select parc from delegation where login='$user' and parc='$salles';";
 394          $result= mysql_query($query);
 395      
 396          if ($result) { 
 397              $ligne= mysql_num_rows($result);
 398              if ($ligne==1) {
 399                  //suppression pour ce parc
 400                  $query_suppr="delete from delegation where login='$user' and parc='$salles';";
 401                  $resul_suppr=mysql_query($query_suppr);
 402                  echo "<p>".gettext("La d&#233;l&#233;gation est supprim&#233; pour")." <b> $user </b> ".gettext("sur le")." $mot <b> $salles</b></p>\n";
 403              }
 404          }
 405      
 406          //verification qu'il n'y a pas d'autres delegations en cours
 407  
 408          $query="select parc,niveau from delegation where login='$user';";
 409          $result= mysql_query($query);
 410          
 411          if ($result) { 
 412              $ligne= mysql_num_rows($result);
 413              if ($ligne>0) {
 414                  //une autre delegation est en cours, on laisse les droits tel quel
 415                  echo "<br><table border=1>\n";
 416                  echo "<tr><td class=menuheader height=\"30\" colspan=\"2\" align=center width=25%>".gettext("Droits restants")."</td></tr>\n";
 417                  echo "<tr><td class=menuheader height=\"30\" align=center>Parc</td><td class=menuheader align=center>".gettext("Droit")."</td></tr>\n";
 418                      
 419                  while ($row=mysql_fetch_row($result)) {
 420                          echo "<tr><td align=center>$row[0]</td>\n";
 421                      echo "<td align=center>\n";
 422                          
 423                      if ($row[1]=="manage") { echo gettext(" D&#233;l&#233;gation forte"); $fort++;}
 424  
 425                      if ($row[1]=="view") { echo gettext("D&#233;l&#233;gation faible"); $faible++;}
 426                      echo "</td></tr>\n";
 427                  }
 428                      
 429                  echo "</table>\n";
 430              }
 431          }
 432      
 433          //retirer le droit (potentiellement les deux droits) si ce user n'a plus aucun parc delegue !!
 434          if (((!isset($fort))||(!$fort)) and (is_admin("parc_can_manage",$user)=="Y")) {
 435              echo "<h3>".gettext("Suppression du droit `D&#233;l&#233;gation forte(parc_can_manage)`")." </h3>\n";
 436              $right="parc_can_manage";
 437              $cDn = "uid=$user,$peopleRdn,$ldap_base_dn";
 438              $pDn = "cn=$right,$rightsRdn,$ldap_base_dn";
 439              exec ("/usr/share/se3/sbin/groupDelEntry.pl \"$cDn\" \"$pDn\"");
 440          }
 441  
 442          if (((!isset($faible))||(!$faible)) and (is_admin("parc_can_view",$user)=="Y")) {
 443              echo "<h3>".gettext("Suppression du droit `D&#233;l&#233;gation faible (parc_can_view)`")." </h3>";
 444  
 445              $right="parc_can_view";
 446              $cDn = "uid=$user,$peopleRdn,$ldap_base_dn";
 447              $pDn = "cn=$right,$rightsRdn,$ldap_base_dn";
 448              exec ("/usr/share/se3/sbin/groupDelEntry.pl \"$cDn\" \"$pDn\"");
 449          }
 450  
 451          if (!this_parc_delegate($user,$salles,"manage")) { 
 452              exec ("/usr/bin/sudo /usr/share/se3/scripts/delegate_parc.sh \"$salles\" \"$user\" \"nodelegate\""); 
 453          }
 454  
 455          // echo "Commande prise en compte";
 456          update_wpkg();
 457          retour_delegate();
 458  
 459          break;
 460  
 461      //*******************************action view*******************************
 462      case "view":
 463          //********************************action commun a: manage, view, nodelegate
 464          if (!($nouveau) or (!$salles)) { 
 465              echo gettext("Vouz devez choisir un")." $mot ".gettext("et un utilisateur"); 
 466              retour_delegate(); 
 467              exit ;
 468          }
 469  
 470          echo "<h2>".gettext("D&#233l&#233gation du")." $mot: </h2>\n";
 471      
 472          if (is_admin("computers_is_admin",$user)=="Y") { 
 473              echo "<font color=#FF0000>".gettext("Cet utilisateur b&#233;n&#233;ficie du  droit computers_is_admin , il a d&#233;j&#224; tous les droits sur les parcs et les templates")."</font><br>";
 474          }
 475  
 476          //ajout dans ldap du droit parc_can_view si le droit n'est pas deja mis
 477              $right="parc_can_view";
 478  
 479          if (is_admin($right,$user)=="Y") {
 480              echo gettext("Cet utilisateur b&#233n&#233ficie d&#233j&#224 d'une d&#233l&#233gation faible")."<br>";
 481          } else {
 482              $cDn = "uid=$user,$peopleRdn,$ldap_base_dn";
 483              $pDn = "cn=$right,$rightsRdn,$ldap_base_dn";
 484  
 485              exec ("/usr/share/se3/sbin/groupAddEntry.pl \"$cDn\" \"$pDn\"");
 486          }
 487                  
 488          if (is_template($salles)) { 
 489              exec ("/usr/bin/sudo /usr/share/se3/scripts/delegate_parc.sh \"$salles\" \"$user\" \"nodelegate\""); 
 490          }
 491  
 492          // echo "/usr/share/se3/sbin/groupAddEntry.pl \"$cDn\" \"$pDn\"";
 493          echo gettext("La d&#233;l&#233;gation est prise en compte: Certains &#233;l&#233;ments du menu sont accessibles &#224;")." <b> $user </b> <br>";
 494          echo "<br><h3>".gettext("L'utilisateur <B> $user</B> b&#233;n&#233;ficie d'une d&#233;l&#233;gation faible, il ne pourra pas modifier vos r&#233;glages.")."</h3>";
 495          
 496          //ajout dans la table delegation si necessaire
 497          $query="select parc from delegation where login='$user' and parc='$salles';";
 498          $result= mysql_query($query);
 499              
 500          if ($result) { 
 501              $ligne= mysql_num_rows($result);
 502              if ($ligne>0) {
 503                  echo "<p><font color=#FF0000>".gettext("L'utilisateur")." <B> $user</B> ".gettext("avait d&#233j&#224 une d&#233l&#233gation sur le")." $mot <b>$salles</b></font></p>\n";
 504                  $query_suppr="delete from delegation where login='$user' and parc='$salles';";
 505                  $resul_suppr=mysql_query($query_suppr);
 506              }
 507              $query_verif="select parc from delegation where login='$user' and niveau='manage';";
 508              $result_verif= mysql_query($query_verif);
 509              
 510              if ($result_verif) {
 511                  $ligne_verif= mysql_num_rows($result_verif);
 512                  if ($ligne_verif==0){
 513                      $right="parc_can_manage";
 514                      $cDn = "uid=$user,$peopleRdn,$ldap_base_dn";
 515                      $pDn = "cn=$right,$rightsRdn,$ldap_base_dn";
 516                      exec ("/usr/share/se3/sbin/groupDelEntry.pl \"$cDn\" \"$pDn\"");
 517                  }                     
 518              }
 519          }
 520  
 521          $query_insert="Insert into delegation (ID,login,parc,niveau) VALUES ('','$user','$salles','view');";
 522          $result_insert=mysql_query($query_insert) or die ("Erreur d'&#233;criture dans la table");
 523          
 524          update_wpkg();
 525          retour_delegate();
 526          
 527          break;
 528          // fin case "view":
 529      }  // fin du switch($action)
 530  
 531  }
 532  include ("pdp.inc.php");
 533  ?>


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