From 5049080b7ef50b47bf50bf2cdf3f4c22b1f9394d Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 16 Oct 2014 06:03:52 -0400
Subject: [PATCH] Implemented: FS#3707 - apps_instance_setting database storing details in plain text

---
 server/mods-available/monitor_core_module.inc.php |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/server/mods-available/monitor_core_module.inc.php b/server/mods-available/monitor_core_module.inc.php
index d6d28ca..fc5dd79 100644
--- a/server/mods-available/monitor_core_module.inc.php
+++ b/server/mods-available/monitor_core_module.inc.php
@@ -121,6 +121,7 @@
 		$this->_monitorFail2ban();
 		$this->_monitorIPTables();
 		$this->_monitorSysLog();
+		$this->_cleanupAPS();
 	}
 
 	private function _monitorEmailQuota() {
@@ -844,6 +845,22 @@
 			'  server_id = ' . $serverId;
 		$app->dbmaster->query($sql);
 	}
+	
+	private function _cleanupAPS() {
+		global $app, $conf;
+		
+		// run this only on the master
+		if($conf['server_id'] == 1) {
+			$records = $app->db->queryAllRecords("SELECT s.instance_id, s.name, s.value FROM `aps_instances_settings` as s INNER JOIN `aps_instances` as i ON (i.id = s.instance_id) WHERE s.value != '' AND s.name IN ('main_database_password', 'admin_password') AND i.instance_status > 1");
+			if(is_array($records)) {
+				foreach($records as $rec) {
+					$tmp = $app->db->queryOneRecord("SELECT id FROM aps_instances_settings WHERE instance_id = '".$app->db->quote($rec['instance_id'])."' AND name = '".$app->db->quote($rec['name'])."'");
+					$app->db->datalogUpdate('aps_instances_settings', "value = ''", 'id', $tmp['id']);
+				}
+			}
+		}
+		
+	}
 
 }
 

--
Gitblit v1.9.1