et rechargée à intervalles réguliers par le script salles_live.php. include_once("winlog_admin_conf.php"); include_once('connexions.php'); include_once('client_http.php'); include_once('session.php'); $trombino = false; if ($trombino_url != "") { $trombino = true; } $username = Username(); $profil = Profil($username); FiltreProfil($profil); $now = time(); $machines = Machines(); // récupération de toutes les machines connues $machines_de_salle = Machines_de_salle($machines); // range les machines dans le tableau $machines_de_salle $connexion_machine = Connexion_machine(); // récupère toutes les connexions en cours $supervis = ($profil >= $niveaux[$roles[2]]); // booleen : utilisateur superviseur ? // Fonction de récupération de la liste des salles bloquées sur SquidGuard Function Get_salles_bloquees($url) { $salles_bloquees = array(); $res = GetURL($url); if ($res != "") { $salles_bloquees = json_decode($res); } return $salles_bloquees; }; // Timestamps de ping if ($mode_ping) { $ping_timestamps = PingTimestamps(); } // connexions dans les salles $salles_bloquees = Get_salles_bloquees($url_salles_bloquees); while ($mdc = current($machines_de_salle)) { $salle = key($machines_de_salle); if (!in_array($salle, $salles_invisibles)) { // si utilisateur administrateur alors lien bloque/débloque activé $bloque = 'autorisé'; $debloque = 'bloqué'; if ($supervis) { $bloque = 'bloque'; $debloque = 'debloque'; } $lien = $bloque; // calcul dernière plus ancienne connexion $jours_last_con = Connexion_doyenne_salle($machines_de_salle[$salle]); $class_jour ='jours j-10'; if ($jours_last_con >= $j10) { $class_jour = 'jours j10'; } if ($jours_last_con >= $j20) { $class_jour = 'jours j20'; } if ($jours_last_con >= $j30) { $class_jour = 'jours j30'; } // lien bloque/debloque if (in_array(strtolower($salle), $salles_bloquees)) { $lien = $debloque; } // calcul nombre de machines connectées / nombre machines de la salle $nb_machines_salle = count($mdc); $i = 0; if (!empty($connexion_machine)) { foreach($mdc as $mac) { if ( array_key_exists($mac, $connexion_machine)) { // on ne compte que les machines connectées $i++; } } } // affichage ligne de salle echo "\n"; $fichier_salle = $repertoire_salles.$salle.".php"; $lien_salle = "$salle"; if ( file_exists($fichier_salle) ) { $lien_salle = "$salle"; } echo "
$lien_salle ($i connexions sur $nb_machines_salle machines = ". number_format($i / $nb_machines_salle * 100, 1) ." %)      ($lien)
\n"; echo "
\n"; if (!empty($connexion_machine)) { // parcours des machines connectées de la salle courante foreach($mdc as $mac) { if (array_key_exists($mac, $connexion_machine)) { // on n'affiche que les machines connectées $username = $connexion_machine[$mac]["username"]; $cpt = Compte($username); // récupère les informations sur l'utilisateur courant $style = ""; $fin_style = ""; $div_trombi = "
"; $fin_div = "
"; if ($trombino) { $url_photo = $trombino_url."/".$username.$trombino_extension_fichier; $div_trombi = "
"; } if ($cpt[2] == $lib_personnel) { $style = ""; $fin_style=""; } $ping_info = ""; if ($mode_ping) { $ping_delta = "indisponible"; if (array_key_exists($mac, $ping_timestamps)) { $ping_ts = strtotime($ping_timestamps[$mac]); $ping_delta = "il y a ".FormateDelta(DateDiff($ping_ts, $now)); } $ping_info = "ping : ".$ping_delta; } echo "
"; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo "\n"; } } } echo "
".$style.$mac.$fin_style."".$style.date("H:i:s",$connexion_machine[$mac]["stamp"]).$fin_style."".$style.$connexion_machine[$mac]["ip"].$fin_style."".$div_trombi.$style.$username.$fin_style.$fin_div."".$div_trombi.$style.$cpt[1]." ".$cpt[0].$fin_style.$fin_div."".$style.$cpt[2].$fin_style."
\n"; } // fin du test salle invisible next($machines_de_salle); } // Récupération des connexions sur la blacklist Squid // Stockage du résultat dans un dataset d'une
dédiée $connexions_blacklist_live = Connexions_blacklist_live($delay, $machines); $div_blacklist = '
'; echo($div_blacklist); ?>