winlog/admin/reload_ma_salle.php
2016-11-22 10:53:26 +01:00

88 lines
2.8 KiB
PHP

<?php
include_once("winlog_admin_conf.php");
include_once("connexions.php");
require_once 'HTTP/Request2.php';
// Fonction de récupération de la liste des salles bloquées sur SquidGuard
Function Get_salles_bloquees($url) {
$salles_bloquees = array();
$r = new HTTP_Request2($url, HTTP_Request2::METHOD_GET);
try {
$response = $r->send();
if (200 == $response->getStatus()) {
$body = $response->getBody();
$salles_bloquees = json_decode($body);
}
}
catch (HTTP_Request2_Exception $ex) {
echo $ex->getMessage();
}
return $salles_bloquees;
};
// Récupération de l'IP origine de la requête
if ( isset($_SERVER["HTTP_X_FORWARDED_FOR"]) ) {
$ip_connectee = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
else {
$ip_connectee = $_SERVER["REMOTE_ADDR"];
}
// récupération de la personne connectée à l'adresse IP
$con = Con_ip($ip_connectee);
if (empty($con) || $con[6] !== "Enseignant") {
echo($msg_salle_live_non_autorise."<br/>adresse IP : ".$ip_connectee);
return; // on quitte immédiatement si non autorisé
}
$nom = $con[4];
$prenom = $con[5];
$hote = $con[2];
$machines = Machines();
$salle = $machines[$hote][0];
if ( is_null($salle) ) {
echo "Connecté hors d'une salle d'une salle connue.";
return; //on quitte immédiatement si on n'est pas sur une machine d'une salle
}
$bloque = '<i><a href="bloque_salle.php?a=b&s='.strtolower($salle).'">bloque</a></i>';
$debloque = '<i><a href="bloque_salle.php?a=d&s='.strtolower($salle).'">debloque</a></i>';
$lien = $bloque;
$salles_bloquees = Get_salles_bloquees($url_salles_bloquees);
if (in_array(strtolower($salle), $salles_bloquees)) {
$lien = $debloque;
}
$connexions_de_ma_salle = Connexions_par_salle($salle);
$machines_de_salle = machines_de_salle($machines);
$nb_machines_de_ma_salle = count($machines_de_salle[$salle]);
$nb_connexions = 0;
foreach($connexions_de_ma_salle as $con) {
if ($con["username"]) { // on ne compte que les machines connectées
$nb_connexions++;
}
}
echo "<div class=\"salle\">$salle ($nb_connexions connexions sur $nb_machines_de_ma_salle machines) ($lien)</div>\n";
echo "<table>";
foreach($connexions_de_ma_salle as $con) {
if ($con["username"]) { // on n'affiche que les machines connectées
$username = $con["username"];
$cpt = Compte($username);
$style = "";
$fin_style = "";
if ($cpt[2]=="Enseignant") { $style = "<b>"; $fin_style="</b>"; }
echo "<tr>";
echo "<td>".$style.$con["machine"].$fin_style."</td>";
echo "<td>".$style.date("H:i:s",$con["stamp"]).$fin_style."</td>";
echo "<td>".$style.$con["ip"].$fin_style."</td>";
echo "<td>".$style.$username.$fin_style."</td>";
echo "<td>".$style.$cpt[1]." ".$cpt[0].$fin_style."</td>";
echo "<td>".$style.$cpt[2].$fin_style."</td>";
echo "</tr>\n";
}
}
echo "</table>";
?>