summaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
Diffstat (limited to 'admin')
-rw-r--r--admin/Database/ogAdmBD-1.1.0pre.sql9
-rw-r--r--admin/Database/ogAdmBD.sql1
-rw-r--r--admin/WebConsole/rest/ogagent.php16
3 files changed, 20 insertions, 6 deletions
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 = <<<EOD
+UPDATE remotepc
+ SET language = '$language'
+ WHERE id = '$id';
+EOD;
+ $cmd->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 {