diff options
author | Ramón M. Gómez <ramongomez@us.es> | 2020-01-09 13:50:09 +0100 |
---|---|---|
committer | Ramón M. Gómez <ramongomez@us.es> | 2020-01-09 13:50:09 +0100 |
commit | 22391cf8091ccaa1a2f9fe08ebe64647d5459a4c (patch) | |
tree | 61c2548986ee77c713cc8ce57bc59fc6b9c440aa | |
parent | 25318fb013a332cf29994784b4631bcaa00e525a (diff) |
#949: Add session info to the computer properties form.
4 files changed, 128 insertions, 15 deletions
diff --git a/admin/WebConsole/idiomas/php/cat/configuraciones_cat.php b/admin/WebConsole/idiomas/php/cat/configuraciones_cat.php index 6eaf723a..9c9cb33f 100644 --- a/admin/WebConsole/idiomas/php/cat/configuraciones_cat.php +++ b/admin/WebConsole/idiomas/php/cat/configuraciones_cat.php @@ -1,8 +1,8 @@ <?php //____________________________________________________ // -// Fitxer d'idiomes php: configuraciones_cat.php -// Idioma: Català +// Fitxer d'idiomes php: configuraciones_cat.php +// Idioma: Català //____________________________________________________ if (empty ($TbMsg)) $TbMsg=array(); $TbMsg[0]='Configuracions'; @@ -61,4 +61,10 @@ $TbMsg[45]='Afegeixi Perfil per obtenir dades'; $TbMsg[495]='Data/Caché'; $TbMsg[4951]='Caché lliure'; +$TbMsg["SECT_SESSIONS"]='Sesiones'; +$TbMsg["SESS_DATETIME"]='Fecha y Hora'; +$TbMsg["SESS_OPERATION"]='Operación'; +$TbMsg["SESS_OPSYS"]='Sistema Operativo'; +$TbMsg["SESS_USER"]='Usuario'; +$TbMsg["SESS_NOSESSIONS"]='No hay sesiones registradas.'; diff --git a/admin/WebConsole/idiomas/php/eng/configuraciones_eng.php b/admin/WebConsole/idiomas/php/eng/configuraciones_eng.php index bd821959..f896603a 100644 --- a/admin/WebConsole/idiomas/php/eng/configuraciones_eng.php +++ b/admin/WebConsole/idiomas/php/eng/configuraciones_eng.php @@ -60,3 +60,11 @@ $TbMsg[44]='Host without hardware profile'; $TbMsg[45]='Add Profile to obtain data'; $TbMsg[495]='Cache data'; $TbMsg[4951]='Free cache'; + +$TbMsg["SECT_SESSIONS"]='Sessions'; +$TbMsg["SESS_DATETIME"]='Date and Time'; +$TbMsg["SESS_OPERATION"]='Operation'; +$TbMsg["SESS_OPSYS"]='Operating System'; +$TbMsg["SESS_USER"]='User'; +$TbMsg["SESS_NOSESSIONS"]='No sessions logged.'; + diff --git a/admin/WebConsole/idiomas/php/esp/configuraciones_esp.php b/admin/WebConsole/idiomas/php/esp/configuraciones_esp.php index ac830a8d..cce9ceed 100644 --- a/admin/WebConsole/idiomas/php/esp/configuraciones_esp.php +++ b/admin/WebConsole/idiomas/php/esp/configuraciones_esp.php @@ -1,7 +1,7 @@ <?php //______________________________________________________ // -// Fichero de idiomas php: configuraciones_esp.php +// Fichero de idiomas php: configuraciones_esp.php // Idioma: Español //______________________________________________________ if (empty ($TbMsg)) $TbMsg=array(); @@ -43,7 +43,7 @@ $TbMsg[29]='Desconocido'; $TbMsg[30]='Sistema de Ficheros'; $TbMsg[31]='Nombre del S.O.'; $TbMsg[32]='Tamaño de partición'; -$TbMsg[33]='Nombre de la Imagen '; +$TbMsg[33]='Nombre de la Imagen'; $TbMsg[34]='Perfil software'; $TbMsg[35]='Disco'; $TbMsg[36]='Particiones Primarias'; @@ -61,4 +61,10 @@ $TbMsg[45]='Agregue perfil para obtener datos'; $TbMsg[495]='Fecha/Caché'; $TbMsg[4951]='Caché libre'; +$TbMsg["SECT_SESSIONS"]='Sesiones'; +$TbMsg["SESS_DATETIME"]='Fecha y Hora'; +$TbMsg["SESS_OPERATION"]='Operación'; +$TbMsg["SESS_OPSYS"]='Sistema Operativo'; +$TbMsg["SESS_USER"]='Usuario'; +$TbMsg["SESS_NOSESSIONS"]='No hay sesiones registradas.'; diff --git a/admin/WebConsole/principal/configuraciones.php b/admin/WebConsole/principal/configuraciones.php index 39093914..19ecff7d 100644 --- a/admin/WebConsole/principal/configuraciones.php +++ b/admin/WebConsole/principal/configuraciones.php @@ -16,6 +16,8 @@ include_once("../includes/constantes.php"); include_once("../idiomas/php/".$idioma."/configuraciones_".$idioma.".php"); include_once("../includes/ConfiguracionesParticiones.php"); +define("LOG_FILE", "/opt/opengnsys/log/ogagent.log"); + //________________________________________________________________________________________________________ // // Captura parámetros @@ -53,13 +55,13 @@ if (!$cmd) Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D. //________________________________________________________________________________________________________ ?> -<HTML> -<TITLE>Administración web de aulas</TITLE> -<HEAD> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> -<LINK rel="stylesheet" type="text/css" href="../estilos.css"> -</HEAD> -<BODY> +<html lang="es"> +<head> + <title>Administración web de aulas</title> + <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> +<link rel="stylesheet" type="text/css" href="../estilos.css"> +</head> +<body> <?php switch($ambito){ case $AMBITO_AULAS : @@ -137,10 +139,13 @@ if (!$cmd) <?php } $sws=$fk_sysFi | $fk_nombreSO | $fk_tamano | $fk_imagen | $fk_perfil | $fk_cache; - pintaConfiguraciones($cmd,$idambito,$ambito,9,$sws,false); + pintaConfiguraciones($cmd,$idambito,$ambito,9,$sws,false); + if ($ambito == $AMBITO_ORDENADORES) { + datos_sesiones($cmd, $idambito); + } ?> -</BODY> -</HTML> +</body> +</html> <?php //________________________________________________________________________________________________________ @@ -329,5 +334,93 @@ function datosGruposOrdenadores($cmd,$idgrupo) </TABLE> <?php } -?> + +/** + * @param object $cmd + * @param int $idordenador + */ +function datos_sesiones($cmd, $idordenador) +{ + global $TbMsg; + $os_color = ['Windows' => "blue", 'Linux' => "magenta", 'MacOS' => "orange"]; + $html = ""; + $ip = ""; + + $cmd->texto = "SELECT ip FROM ordenadores WHERE idordenador = $idordenador"; + $rs = new Recordset; + $rs->Comando=&$cmd; + if ($rs->Abrir()){ + $rs->Primero(); + $ip = $rs->campos["ip"]; + $rs->Cerrar(); + } + if ($ip) { + foreach (file(LOG_FILE) as $line) { + if (strstr($line, "ip=$ip")) { + $fields = preg_split("/[:,=]/", rtrim($line, ". \t\n\r\0\x0B")); + $date_time = str_replace("T", " ", $fields[0]) . ":" . $fields[1] . ":" . + preg_replace("/\+.*$/", "", $fields[2]); + $operation = trim($fields[3]); + $username = $os_type = $os_version = ""; + switch ($operation) { + case "OGAgent started": + $operation = "Iniciar"; + $os_type = $fields[14] ?? ""; + $os_version = trim($fields[15] ?? ""); + break; + case "OGAgent stopped": + $operation = "Apagar"; + $os_type = $fields[14] ?? ""; + $os_version = trim($fields[15] ?? ""); + break; + case "User logged in": + $operation = "Entrar"; + $username = $fields[7] ?? ""; + $os_type = $fields[11] ?? ""; + $os_version = trim($fields[12] ?? ""); + break; + case "User logged out": + $operation = "Salir"; + $username = $fields[7] ?? "-"; + break; + default: + $operation = "ERROR"; + } + $color = $os_color[$os_type] ?? ""; + $html .= <<<EOT + <tr> + <td>$date_time</td> + <td>$operation</td> + <td style="background-color: $color; color: white;">$os_version</td> + <td>$username</td> + </tr> +EOT; + } + } + if (!empty($html)) { + echo <<<EOT +<table class="tabla_datos" style="margin-left: auto; margin-right: auto;"> + <tr> + <th colspan="5">${TbMsg["SECT_SESSIONS"]}</th> + </tr> + <tr> + <th>${TbMsg["SESS_DATETIME"]}</th> + <th>${TbMsg["SESS_OPERATION"]}</th> + <th>${TbMsg["SESS_OPSYS"]}</th> + <th>${TbMsg["SESS_USER"]}</th> + </tr> +$html +</table> +EOT; + } else { + echo <<<EOT +<table class="tabla_datos" style="margin-left: auto; margin-right: auto;"> + <tr> + <th>${TbMsg["SESS_NOSESSIONS"]}</th> + </tr> +</table> +EOT; + } + } +} |