From b25bf4f5389bcc0cef93b4f1dec7c9eb79911833 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Fri, 14 Dec 2018 13:18:41 +0100
Subject: [PATCH] - backported datalog viewer from 3.2, contributed by Timme
 Hosting

---
 install/sql/incremental/upd_dev_collection.sql      |  2 +-
 install/sql/ispconfig3.sql                          |  1 +
 interface/lib/classes/db_mysql.inc.php              |  4 ++--
 interface/web/login/index.php                       |  2 +-
 interface/web/monitor/lib/lang/de.lng               |  1 +
 interface/web/monitor/lib/lang/en.lng               |  1 +
 interface/web/monitor/lib/module.conf.php           |  5 +++++
 .../themes/default/assets/stylesheets/ispconfig.css | 13 +++++++++++++
 8 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql
index 8b13789179..872ebfb465 100644
--- a/install/sql/incremental/upd_dev_collection.sql
+++ b/install/sql/incremental/upd_dev_collection.sql
@@ -1 +1 @@
-
+ALTER TABLE `sys_datalog` ADD `session_id` varchar(64) NOT NULL DEFAULT '' AFTER `error`;
diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index d3737a3ed9..aacd2ecdb6 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -1631,6 +1631,7 @@ CREATE TABLE `sys_datalog` (
   `data` longtext,
   `status` set('pending','ok','warning','error') NOT NULL default 'ok',
   `error` mediumtext,
+  `session_id` varchar(64) NOT NULL DEFAULT '',
   PRIMARY KEY  (`datalog_id`),
   KEY `server_id` (`server_id`,`status`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php
index b03ad55676..8443d106b1 100644
--- a/interface/lib/classes/db_mysql.inc.php
+++ b/interface/lib/classes/db_mysql.inc.php
@@ -719,8 +719,8 @@ class db
 			if($action == 'INSERT') $action = 'i';
 			if($action == 'UPDATE') $action = 'u';
 			if($action == 'DELETE') $action = 'd';
-			$sql = "INSERT INTO sys_datalog (dbtable,dbidx,server_id,action,tstamp,user,data) VALUES (?, ?, ?, ?, ?, ?, ?)";
-			$app->db->query($sql, $db_table, $dbidx, $server_id, $action, time(), $username, $diffstr);
+			$sql = "INSERT INTO sys_datalog (dbtable,dbidx,server_id,action,tstamp,user,data,session_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
+			$app->db->query($sql, $db_table, $dbidx, $server_id, $action, time(), $username, $diffstr, session_id());
 		}
 
 		return true;
diff --git a/interface/web/login/index.php b/interface/web/login/index.php
index 558896acb7..47030e438d 100644
--- a/interface/web/login/index.php
+++ b/interface/web/login/index.php
@@ -262,7 +262,7 @@ if(count($_POST) > 0) {
 						$app->plugin->raiseEvent('login', $username);
 						
 						//* Save successfull login message to var
-						$authlog = 'Successful login for user \''. $username .'\' from '. $_SERVER['REMOTE_ADDR'] .' at '. date('Y-m-d H:i:s');
+						$authlog = 'Successful login for user \''. $username .'\' from '. $_SERVER['REMOTE_ADDR'] .' at '. date('Y-m-d H:i:s') . ' with session ID ' .session_id();						
 						$authlog_handle = fopen($conf['ispconfig_log_dir'].'/auth.log', 'a');
 						fwrite($authlog_handle, $authlog ."\n");
 						fclose($authlog_handle);
diff --git a/interface/web/monitor/lib/lang/de.lng b/interface/web/monitor/lib/lang/de.lng
index 78954daee6..f8fabe7990 100644
--- a/interface/web/monitor/lib/lang/de.lng
+++ b/interface/web/monitor/lib/lang/de.lng
@@ -40,6 +40,7 @@ $wb['Show Clamav-Log'] = 'ClamAV Protokoll anzeigen';
 $wb['Show ISPConfig-Log'] = 'ISPConfig Protokoll anzeigen';
 $wb['Show RKHunter-Log'] = 'RKHunter Protokoll anzeigen';
 $wb['Show Jobqueue'] = 'Jobwarteschlange anzeigen';
+$wb['Show Data Log History'] = 'Datalog-History anzeigen';
 $wb['Show ISPC Cron-Log'] = 'Cron Protokoll anzeigen';
 $wb['no_data_updates_txt'] = 'Derzeit stehen keine Daten über Updates zur Verfügung. Bitte später erneut überprüfen.';
 $wb['no_data_raid_txt'] = 'Derzeit stehen keine Daten über RAID zur Verfügung. Bitte später erneut überprüfen.';
diff --git a/interface/web/monitor/lib/lang/en.lng b/interface/web/monitor/lib/lang/en.lng
index f4dbbeff9b..194bbc5030 100644
--- a/interface/web/monitor/lib/lang/en.lng
+++ b/interface/web/monitor/lib/lang/en.lng
@@ -46,6 +46,7 @@ $wb['Show Clamav-Log'] = 'Show Clamav-Log';
 $wb['Show ISPConfig-Log'] = 'Show ISPConfig-Log';
 $wb['Show RKHunter-Log'] = 'Show RKHunter-Log';
 $wb['Show Jobqueue'] = 'Show Jobqueue';
+$wb['Show Data Log History'] = 'Show Data Log History';
 $wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
 $wb['Show MongoDB-Log'] = 'Show MongoDB-Log';
 $wb['Show IPTables'] = 'Show IPTables';
diff --git a/interface/web/monitor/lib/module.conf.php b/interface/web/monitor/lib/module.conf.php
index cd84ff3b1a..ddb4972aae 100644
--- a/interface/web/monitor/lib/module.conf.php
+++ b/interface/web/monitor/lib/module.conf.php
@@ -26,6 +26,11 @@ $items[] = array( 'title'  => 'Show Jobqueue',
 	'link' => 'monitor/datalog_list.php',
 	'html_id' => 'jobqueue');
 
+$items[] = array( 'title'  => 'Show Data Log History',
+	'target'  => 'content',
+	'link' => 'monitor/dataloghistory_list.php',
+	'html_id' => 'dataloghistory');
+
 $module["nav"][] = array( 'title' => 'System State (All Servers)',
 	'open'  => 1,
 	'items' => $items);
diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.css b/interface/web/themes/default/assets/stylesheets/ispconfig.css
index 5cd1bd1411..f5e8c46abf 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.css
@@ -782,3 +782,16 @@ span.notification_text {
     font-family: inherit;
     color: white;
 }
+.finediff {
+	font-family: monospace;
+}
+.finediff ins {
+	color: green;
+	background: #dfd;
+	text-decoration: none;
+}
+.finediff del {
+	color: red;
+	background: #fdd;
+	text-decoration: none;
+}
\ No newline at end of file
-- 
GitLab