From b46042c67f764c242943be42e2fd20eb65fbd4a1 Mon Sep 17 00:00:00 2001 From: ramon Date: Tue, 12 Dec 2017 16:28:56 +0000 Subject: #708: API REST guarda idioma de la sesiĆ³n para adaptar los mensajes de fin de acceso remoto. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://opengnsys.es/svn/branches/version1.1@5529 a21b9725-9963-47de-94b9-378ad31fedc9 --- admin/Database/ogAdmBD-1.1.0pre.sql | 9 +++++---- admin/Database/ogAdmBD.sql | 1 + admin/WebConsole/rest/ogagent.php | 16 ++++++++++++++-- 3 files changed, 20 insertions(+), 6 deletions(-) (limited to 'admin') diff --git a/admin/Database/ogAdmBD-1.1.0pre.sql b/admin/Database/ogAdmBD-1.1.0pre.sql index e9ec87e6..8b68899d 100644 --- a/admin/Database/ogAdmBD-1.1.0pre.sql +++ b/admin/Database/ogAdmBD-1.1.0pre.sql @@ -223,16 +223,17 @@ ALTER TABLE aulas MODIFY puestos SMALLINT DEFAULT NULL; # Nuevas tablas para datos del proyecto Remote PC y operaciones de OGAgent (ticket #708). -CREATE TABLE IF NOT EXISTS remotepc ( +DROP TABLE IF EXISTS remotepc; +CREATE TABLE remotepc ( id INT(11) NOT NULL, reserved DATETIME DEFAULT NULL, urllogin VARCHAR(100), urllogout VARCHAR(100), + language VARCHAR(5), PRIMARY KEY (id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -ALTER TABLE remotepc - MODIFY reserved DATETIME DEFAULT NULL; -CREATE TABLE IF NOT EXISTS ogagent_queue ( +DROP TABLE IF EXISTS ogagent_queue; +CREATE TABLE ogagent_queue ( id INT(11) NOT NULL AUTO_INCREMENT, clientid INT(11) NOT NULL, exectime DATETIME DEFAULT NULL, diff --git a/admin/Database/ogAdmBD.sql b/admin/Database/ogAdmBD.sql index 55f11a2b..c126f63c 100644 --- a/admin/Database/ogAdmBD.sql +++ b/admin/Database/ogAdmBD.sql @@ -791,6 +791,7 @@ CREATE TABLE `remotepc` ( `reserved` datetime DEFAULT NULL, `urllogin` varchar(100), `urllogout` varchar(100), + `language` varchar(5), PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; diff --git a/admin/WebConsole/rest/ogagent.php b/admin/WebConsole/rest/ogagent.php index 26de8a10..f2e8d5d9 100644 --- a/admin/WebConsole/rest/ogagent.php +++ b/admin/WebConsole/rest/ogagent.php @@ -136,6 +136,9 @@ $app->post('/ogagent/loggedin', $input = json_decode($app->request()->getBody()); $ip = htmlspecialchars($input->ip); $user = htmlspecialchars($input->user); + $language = isset($input->language) ? substr($input->language, 0, strpos($input->language, "_")) : ""; + if (isset($input->ostype)) $osType = htmlspecialchars($input->ostype); + if (isset($input->osversion)) $osVersion = str_replace(",", ";", htmlspecialchars($input->osversion)); // Check sender IP address consistency (same as parameter value). if (empty(preg_match('/^python-requests\//', $_SERVER['HTTP_USER_AGENT'])) or $ip !== $_SERVER['REMOTE_ADDR']) { throw new Exception("Bad OGAgent: ip=$ip, sender=".$_SERVER['REMOTE_ADDR'].", agent=".$_SERVER['HTTP_USER_AGENT']); @@ -161,7 +164,7 @@ EOD; $rs->Cerrar(); if (!is_null($id)) { // Log activity, respond to client and continue processing. - writeLog("User logged in: ip=$ip, user=$user."); + writeLog("User logged in: ip=$ip, user=$user, lang=$language, os=$osType:$osVersion."); $response = ""; jsonResponseNow(200, $response); } else { @@ -174,6 +177,13 @@ EOD; // ... (check response) //if ($result[0]['code'] != 200) { // ... + // Updating user's session language for messages. + $cmd->texto = <<Ejecutar(); } } else { throw new Exception("Database error"); @@ -205,6 +215,8 @@ $app->post('/ogagent/loggedout', $input = json_decode($app->request()->getBody()); $ip = htmlspecialchars($input->ip); $user = htmlspecialchars($input->user); + if (isset($input->ostype)) $osType = htmlspecialchars($input->ostype); + if (isset($input->osversion)) $osVersion = str_replace(",", ";", htmlspecialchars($input->osversion)); // Check sender agent type and IP address consistency (same as parameter value). if (empty(preg_match('/^python-requests\//', $_SERVER['HTTP_USER_AGENT'])) or $ip !== $_SERVER['REMOTE_ADDR']) { throw new Exception("Bad OGAgent: ip=$ip, sender=".$_SERVER['REMOTE_ADDR'].", agent=".$_SERVER['HTTP_USER_AGENT']); @@ -230,7 +242,7 @@ EOD; $rs->Cerrar(); if (!is_null($id)) { // Log activity, respond to client and continue processing. - writeLog("User logged out: ip=$ip, user=$user."); + writeLog("User logged out: ip=$ip, user=$user, os=$osType:$osVersion."); $response = ""; jsonResponseNow(200, $response); } else { -- cgit v1.2.3-18-g5258