[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

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

   1  <?php
   2   
   3  
   4     /**
   5     
   6     * affiche l'historique des connexions 
   7     * @Version $Id: show_histo.php 8559 2015-03-15 13:08:23Z plouf $ 
   8     
   9     * @Projet LCS / SambaEdu 
  10     
  11     * @auteurs Equipe Tice academie de Caen
  12     * @auteurs jLCF >:> jean-luc.chretien@tice.ac-caen.fr
  13     * @auteurs oluve olivier.le_monnier@crdp.ac-caen.fr
  14     * @auteurs wawa  olivier.lecluse@crdp.ac-caen.fr
  15  
  16     * @Licence Distribue selon les termes de la licence GPL
  17     
  18     * @note 
  19     
  20     */
  21  
  22     /**
  23  
  24     * @Repertoire: parcs/
  25     * file: show_histo.php
  26  
  27  
  28     */
  29  
  30  
  31  
  32  
  33  include  "entete.inc.php";
  34  include  "ldap.inc.php";
  35  include  "ihm.inc.php";
  36  
  37  require_once  ("lang.inc.php");
  38  bindtextdomain('se3-parcs',"/var/www/se3/locale");
  39  textdomain ('se3-parcs');
  40  
  41  
  42  $selectionne=isset($_GET['selectionne']) ? $_GET['selectionne'] : NULL;
  43  $ipaddr=isset($_GET['ipaddr']) ? $_GET['ipaddr'] : NULL;
  44  $cnx_start2=isset($_GET['cnx_start2']) ? $_GET['cnx_start2'] : NULL;
  45  $cnx_start1=isset($_GET['cnx_start1']) ? $_GET['cnx_start1'] : NULL;
  46  $cnx_start=isset($_GET['cnx_start']) ? $_GET['cnx_start'] : NULL;
  47  $user=isset($_GET['user']) ? $_GET['user'] : NULL;
  48  $mpenc=isset($_GET['mpenc']) ? $_GET['mpenc'] : NULL;
  49  
  50  //aide
  51  $_SESSION["pageaide"]="Informations_syst%C3%A8me#Historique";
  52  
  53  //debug_var();
  54  
  55  // Affichage du formulaire de saisie d'adresse IP
  56  echo "<H1>".gettext("Historique des connexions")."</H1>";
  57          
  58  if ((is_admin("computers_is_admin",$login)=="Y") or (is_admin("parc_can_view",$login)=="Y") or (is_admin("parc_can_manage",$login)=="Y")  or (is_admin("Annu_is_admin",$login)=="Y") or $login == $user) {
  59      
  60      if ((is_admin("computers_is_admin",$login)=="N") and ((is_admin("parc_can_view",$login)=="Y") or (is_admin("parc_can_manage",$login)=="Y"))) {
  61                  echo "<h3>".gettext("Votre d&#233;l&#233;gation a &#233;t&#233; prise en compte pour l'affichage de cette page.")."</h3>";
  62                  $acces_restreint=1;
  63                  $list_delegate=list_parc_delegate($login);
  64                  if (count($list_delegate)>0) {
  65                          $delegate="yes";
  66          }
  67      } else {
  68          echo "<FORM action=\"show_histo.php\" method=\"GET\">\n";
  69          echo "<SELECT NAME=\"selectionne\" SIZE=\"1\" onchange=submit()>\n";
  70  
  71          echo "<option value=\"0\"";
  72          if ((!isset($selectionne)) || ($selectionne=="0")) { echo " selected";}
  73          echo ">".gettext("S&#233;lectionner\n");
  74          echo "<option value=\"1\" ";
  75          if ($selectionne=="1") { echo " selected"; }
  76          echo ">".gettext("Par adresse IP\n");
  77          echo "<option value=\"2\"";
  78          if ($selectionne=="2") { echo " selected"; }
  79          echo ">".gettext("Par nom de machine\n");
  80          echo "<option value=\"3\"";
  81          if ($selectionne=="3") { echo " selected"; }
  82          echo ">".gettext("Par utilisateur\n");
  83          echo "</SELECT>\n";
  84  }    
  85  
  86      if ($selectionne=="1") {
  87          if (($ipaddr==$REMOTE_ADDR) || ($ipaddr=="")) { $IP=$REMOTE_ADDR; } else { $IP=$ipaddr; }
  88          echo " <INPUT TYPE=\"text\" NAME=\"ipaddr\"\n VALUE=\"$IP\" SIZE=\"12\">";
  89      } elseif ($selectionne=="2") {
  90          echo " <INPUT TYPE=\"text\" NAME=\"mpenc\" VALUE=\"$mpenc\" SIZE=\"12\">";
  91      } elseif ($selectionne=="3") {
  92          echo " <INPUT TYPE=\"text\" NAME=\"user\" VALUE=\"$user\" SIZE=\"12\">";
  93      }
  94      echo " <input type=\"submit\" value=\"".gettext("Valider")."\">\n";
  95      echo "</FORM>\n";
  96      echo "<BR>";
  97      echo "<HR>";
  98  
  99      
 100      // Si recherche sur adresse IP
 101          if (($selectionne=="1") && (isset($ipaddr))) {
 102          // Affichage des renseignements sur la machine depuis la table connexions
 103          echo "<BR>";
 104          echo gettext("Table des connexions sur l'adresse IP")." <STRONG><FONT color='red'>$ipaddr</FONT></STRONG>\n";
 105          if ("$smbversion"=="samba3") $smbsess=exec ("smbstatus |gawk -F' ' '{print \" \"$5\" \"$4}' |grep '($ipaddr)' |cut -d' ' -f3 |head -n1");
 106          else $smbsess=exec ("smbstatus |gawk -F' ' '{print \" \"$6\" \"$4}' |grep '($ipaddr)' |cut -d' ' -f3 |head -n1");
 107          
 108          if ($smbsess=="") echo "<P>".gettext("Aucune connexion en cours sur cette machine")."</P>\n";
 109          else {
 110              $login = exec ("smbstatus | grep -v 'root' |gawk -F' ' '{print \" \"$4\" \"$2}' |grep ' $smbsess ' |cut -d' ' -f3 |head -n1");
 111              echo "<P><STRONG><FONT color='red'>$login</FONT></STRONG> ".gettext("est actuellement connect&#233; sur cette machine")."</P>\n";
 112          }
 113  
 114          if (! isset($cnx_start)) $cnx_start=0;
 115          echo "<P><STRONG>".gettext("Etat des 10 derni&#232;res connexions sur la machine")."</STRONG></P>\n";
 116          $query=" select * from connexions where ip_address='$ipaddr' order by id desc limit ";
 117          $query .= $cnx_start;
 118          $query .= ",10";
 119  
 120          $result = mysql_query($query);
 121          if (($result)) {
 122              // Affichage des liens de navigation
 123              if ($cnx_start < 10) { $cnx_start1=0; $cnx_start2=$cnx_start+10; }
 124              else if (mysql_num_rows($result)==0) { $cnx_start2=$cnx_start; $cnx_start1=$cnx_start-10; }
 125              else { $cnx_start1=$cnx_start-10; $cnx_start2=$cnx_start+10; }
 126              echo "<TABLE width='100%'><TR><TD WIDTH='50%'>";
 127              if ($cnx_start >= 10) echo "<A HREF='show_histo.php?ipaddr=$ipaddr&cnx_start=$cnx_start1&selectionne=1'><-- ".gettext("Voir les 10 connexions pr&#233;c&#233;dentes")."</A>&nbsp;&nbsp;&nbsp;&nbsp;";
 128              echo "</TD><TD>";
 129              if ($cnx_start2 != $cnx_start) echo "<A HREF='show_histo.php?ipaddr=$ipaddr&cnx_start=$cnx_start2&selectionne=1'>".gettext("Voir les 10 connexions suivantes")." --></A>\n";
 130              echo "</TD></TR></TABLE>\n";
 131              // affichage de la table connexions
 132              echo "<TABLE  align='center' border='1'>\n";
 133              echo "<TR><TD  class='menuheader'>".gettext("Utilisateur connect&#233;")."</TD><TD  class='menuheader'>".gettext("Nom machine")."</TD><TD  class='menuheader'>".gettext("Date/Heure de connexion")."</TD><TD  class='menuheader'>".gettext("Date/Heure de d&#233;connexion")."</TD></TR>";
 134              while ($r=mysql_fetch_array($result)) {
 135                  //echo "<TR align='center'><TD>".$r["username"]."</TD>\n";
 136                  echo "<TR align='center'><TD><A HREF='show_histo.php?selectionne=3&user=".$r["username"]."'>".$r["username"]."</A></TD>\n";
 137                  //echo "<TD>".$r["netbios_name"]."</TD>\n";
 138                  echo "<TD><A HREF='show_histo.php?selectionne=2&mpenc=".$r["netbios_name"]."'>".$r["netbios_name"]."</A></TD>\n";
 139                  echo "<TD>".$r["logintime"]."</TD>\n";
 140                  echo "<TD>".$r["logouttime"]."</TD></TR>\n";
 141              }
 142              echo "</TABLE>\n";
 143          } else echo gettext("erreur lors de la lecture de la base se3");
 144  
 145        }
 146  
 147  
 148  
 149  
 150      // Affichage des renseignements sur l'utilisateur
 151      
 152          if (($selectionne=="3") && (isset($user))) {
 153          if ("$smbversion" == "samba3") exec ("smbstatus -b -u $user |awk 'NF>4 {print $1}'",$arr_pid);
 154          else exec ("smbstatus -b -u $user |gawk -F' ' '{print $1}'",$arr_pid);
 155          $nbmach=count($arr_pid);
 156          if ("$smbversion" == "samba3") $nbmach+=5;
 157          if ($nbmach>5) {
 158              echo "<P><STRONG><FONT color='red'>";
 159              echo $nbmach-5;
 160              // echo "</FONT></STRONG> connexion(s) en cours sous le login <STRONG><FONT color='red'>$user</FONT></STRONG> sur ";
 161              echo "</FONT></STRONG>".gettext(" connexion(s) en cours sous le login")." <A HREF='../annu/people.php?uid=$user'><STRONG><FONT color='red'><U>$user</U></FONT></STRONG></A>".gettext(" sur ");
 162               for ($i=4; $i<=$nbmach; $i++) {
 163                  if ("$smbversion" == "samba3") {
 164                      $pid=$arr_pid[$i-4];
 165                      $machine=exec ("smbstatus |gawk -F' ' '{print \" \"$1\" \"$4}' |grep ' $pid ' |cut -d' ' -f3 |head -n1"); 
 166                      } else {
 167                      $pid=$arr_pid[$i];
 168                      $machine=exec ("smbstatus |gawk -F' ' '{print \" \"$4\" \"$5}' |grep ' $pid ' |cut -d' ' -f3 |head -n1");
 169                  }
 170                  if (is_admin("computers_is_admin",$login)=="Y")  echo "<A HREF='show_histo.php?selectionne=2&mpenc=".urlencode($machine)."'><U>$machine</U></A> ";
 171                  else echo "<STRONG>$machine</STRONG> ";
 172              }
 173          } else {
 174              echo "<BR>";
 175              //echo "Aucune connexion en cours sous le login <STRONG><FONT color='red'>$user</FONT></STRONG>";
 176              echo gettext("Aucune connexion en cours sous le login");
 177              echo " <A HREF='../annu/people.php?uid=$user'><STRONG><FONT color='red'><U>$user</U></FONT></STRONG></A>";
 178          }
 179          echo "\n";
 180  
 181          if (! isset($cnx_start)) $cnx_start=0;
 182          echo "<P><STRONG>".gettext("Etat des 10 derni&#232;res connexions de l'utilisateur")." $user</STRONG></P>\n";
 183          $query=" select * from connexions where username='$user' order by id desc limit ";
 184          $query .= $cnx_start;
 185          $query .= ",10";
 186  
 187          $result = mysql_query($query);
 188          if (($result)) {
 189              // Affichage des liens de navigation
 190              if ($cnx_start < 10) { $cnx_start1=0; $cnx_start2=$cnx_start+10; }
 191              else if (mysql_num_rows($result)==0) { $cnx_start2=$cnx_start; $cnx_start1=$cnx_start-10; }
 192              else { $cnx_start1=$cnx_start-10; $cnx_start2=$cnx_start+10; }
 193              echo "<TABLE width='100%'><TR><TD WIDTH='50%'>";
 194              if ($cnx_start >= 10) echo "<A HREF='show_histo.php?user=$user&cnx_start=$cnx_start1&selectionne=3'><-- ".gettext("Voir les 10 connexions pr&#233;c&#233;dentes")."</A>&nbsp;&nbsp;&nbsp;&nbsp;";
 195              echo "</TD><TD>";
 196              if ($cnx_start2 != $cnx_start) echo "<A HREF='show_histo.php?user=$user&cnx_start=$cnx_start2&selectionne=3'>".gettext("Voir les 10 connexions suivantes")." --></A>\n";
 197              echo "</TD></TR></TABLE>\n";
 198              // affichage de la table connexions
 199              echo "<TABLE  align='center' border='1'>\n";
 200              echo "<TR><TD class='menuheader'>".gettext("Nom machine")."</TH><TD class='menuheader'>".gettext("Adresse IP")."</TH>";
 201              echo "<TD class='menuheader'>".gettext("Date/Heure de connexion")."</TH><TD class='menuheader'>".gettext("Date/Heure de d&#233;connexion")."</TH></TR>";
 202              while ($r=mysql_fetch_array($result)) {
 203                  // echo "<TR align='center'><TD>".$r["netbios_name"]."</TD>\n";
 204                  echo "<TR align='center'><TD>";
 205                  if (is_admin("computers_is_admin",$login)=="Y") { echo "<A HREF='show_histo.php?selectionne=2&mpenc=".$r["netbios_name"]."'>"; }
 206                  echo $r["netbios_name"];
 207                  if (is_admin("computers_is_admin",$login)=="Y") echo "</A>";
 208                  echo "</TD>\n";
 209                  //echo "<TD>".$r["ip_address"]."</TD>\n";
 210                  echo "<TD>";
 211                  if (is_admin("computers_is_admin",$login)=="Y") { echo "<A HREF='show_histo.php?selectionne=1&ipaddr=".$r["ip_address"]."'>"; }
 212                  echo $r["ip_address"];
 213                  if (is_admin("computers_is_admin",$login)=="Y") {"</A>"; }
 214                  echo "</TD>\n";
 215                  echo "<TD>".$r["logintime"]."</TD>\n";
 216                  echo "<TD>".$r["logouttime"]."</TD></TR>\n";
 217              }
 218              echo "</TABLE>\n";
 219          } else echo gettext("erreur lors de la lecture de la base se3");
 220      }
 221  
 222  
 223      // Affichage par nom de la machine
 224      
 225      // Affichage des renseignements sur la machine depuis la table connexions
 226      
 227          if (($selectionne=="2") && (isset($mpenc))) {
 228          echo "<p><strong>$mpenc</strong> <a href='cherche_machine.php?mpenc=$mpenc' title='Voir les parcs de la machine.'><img src='../elements/images/computer.png' /></a></p>";
 229          $mp=urldecode($mpenc);
 230          $mp_curr=search_machines("(&(cn=$mp)(objectClass=ipHost))","computers");
 231          echo "<P><STRONG>".gettext("Adresse IP inscrite dans l'annuaire:")." </STRONG><FONT color='red'>".$mp_curr[0]["ipHostNumber"]."</FONT></P>\n";
 232          if ("$smbversion"=="samba3") $smbsess=exec ("smbstatus |gawk -F' ' '{print \" \"$5\" \"$4\" \"}' |grep ' $mp ' |cut -d' ' -f2 |head -n1");
 233          else $smbsess=exec ("smbstatus |gawk -F' ' '{print \" \"$5\" \"$4}' |grep ' $mp ' |cut -d' ' -f3 |head -n1");
 234          if ($smbsess=="") echo "<P>".gettext("Aucune connexion en cours sur cette machine")."</P>\n";
 235          else {
 236          if ("$smbversion"=="samba3") $login = exec ("smbstatus | grep -v 'root' |gawk -F' ' '{print \" \"$5\" \"$2}' |grep ' $smbsess ' |cut -d' ' -f3 |head -n1");
 237          else $login = exec ("smbstatus | grep -v 'root' |gawk -F' ' '{print \" \"$4\" \"$2}' |grep ' $smbsess ' |cut -d' ' -f3 |head -n1");
 238              // echo "<P><STRONG><FONT color='red'>$login</FONT></STRONG> est actuellement connect&#233; sur cette machine</P>\n";
 239              echo "<P><STRONG><FONT color='red'><A HREF='show_histo.php?selectionne=3&user=$login'>$login</A></FONT></STRONG>".gettext(" est actuellement connect&#233; sur cette machine")."</P>\n";
 240          }
 241  
 242          if (! isset($cnx_start)) $cnx_start=0;
 243          echo "<P><STRONG>".gettext("Etat des 10 derni&#232;res connexions sur la machine")."</STRONG></P>\n";
 244          $query=" select * from connexions where netbios_name='$mp' order by id desc limit ";
 245          $query .= $cnx_start;
 246          $query .= ",10";
 247          
 248          $result = mysql_query($query);
 249          if (($result)) {
 250              // Affichage des liens de navigation
 251              if ($cnx_start < 10) { $cnx_start1=0; $cnx_start2=$cnx_start+10; }
 252              else if (mysql_num_rows($result)==0) { $cnx_start2=$cnx_start; $cnx_start1=$cnx_start-10; }
 253              else { $cnx_start1=$cnx_start-10; $cnx_start2=$cnx_start+10; }
 254              echo "<TABLE width='100%'><TR><TD WIDTH='50%'>";
 255              if ($cnx_start >= 10) echo "<A HREF='show_histo.php?mpenc=$mpenc&cnx_start=$cnx_start1&selectionne=2'><-- ".gettext("Voir les 10 connexions pr&#233;c&#233;dentes")."</A>&nbsp;&nbsp;&nbsp;&nbsp;";
 256              echo "</TD><TD>";
 257              if ($cnx_start2 != $cnx_start) echo "<A HREF='show_histo.php?mpenc=$mpenc&cnx_start=$cnx_start2&selectionne=2'>".gettext("Voir les 10 connexions suivantes")." --></A>\n";
 258              echo "</TD></TR></TABLE>\n";
 259              // affichage de la table connexions
 260              echo "<TABLE  align='center' border='1'>\n";
 261              echo "<TR><TD class='menuheader'>".gettext("Utilisateur connect&#233")."</TD><TD class='menuheader'>".gettext("Adresse IP")."</TD><TD class='menuheader'>".gettext("Date/Heure de connexion")."</TD><TD class='menuheader'>".gettext("Date/Heure de d&#233;connexion")."</TD></TR>";
 262              while ($r=mysql_fetch_array($result)) {
 263                  // echo "<TR align='center'><TD>".$r["username"]."</TD>\n";
 264                  echo "<TR align='center'><TD><A HREF='show_histo.php?selectionne=3&user=".$r["username"]."'>".$r["username"]."</A></TD>\n";
 265                  //echo "<TD>".$r["ip_address"]."</TD>\n";
 266                  echo "<TD><A HREF='show_histo.php?selectionne=1&ipaddr=".$r["ip_address"]."'>".$r["ip_address"]."</A></TD>\n";
 267                  echo "<TD>".$r["logintime"]."</TD>\n";
 268                  echo "<TD>".$r["logouttime"]."</TD></TR>\n";
 269              }
 270              echo "</TABLE>\n";
 271          } else echo gettext("erreur lors de la lecture de la base se3");
 272          
 273        } 
 274  
 275  
 276  
 277  } else {
 278      echo "Vous n'avez pas les droits pour acc&#233;der &#224; cette page";
 279  }
 280  
 281  
 282  include ("pdp.inc.php");
 283  ?>


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