corrected Database::needSqlData() and Database::getSqlData(), refs #1287

Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
This commit is contained in:
Michael Kaufmann (d00p)
2013-11-26 09:08:27 +01:00
parent a2dbf56d2e
commit 81c0771f3b
5 changed files with 22 additions and 10 deletions

View File

@@ -18,10 +18,14 @@
*/ */
define('AREA', 'admin'); define('AREA', 'admin');
$need_db_sql_data = true;
$need_root_db_sql_data = true;
require './lib/init.php'; require './lib/init.php';
// get sql-root access data
Database::needRoot(true);
Database::needSqlData();
$sql_root = Database::getSqlData();
Database::needRoot(false);
if (($page == 'settings' || $page == 'overview') if (($page == 'settings' || $page == 'overview')
&& $userinfo['change_serversettings'] == '1' && $userinfo['change_serversettings'] == '1'
) { ) {

View File

@@ -22,7 +22,7 @@ require './lib/init.php';
// get sql-root access data // get sql-root access data
Database::needRoot(true); Database::needRoot(true);
Database::needSqlData(true); Database::needSqlData();
$sql_root = Database::getSqlData(); $sql_root = Database::getSqlData();
Database::needRoot(false); Database::needRoot(false);
@@ -34,6 +34,8 @@ if (isset($_POST['id'])) {
if ($page == 'overview') { if ($page == 'overview') {
$log->logAction(USR_ACTION, LOG_NOTICE, "viewed customer_mysql"); $log->logAction(USR_ACTION, LOG_NOTICE, "viewed customer_mysql");
Database::needSqlData();
$sql = Database::getSqlData();
$lng['mysql']['description'] = str_replace('<SQL_HOST>', $sql['host'], $lng['mysql']['description']); $lng['mysql']['description'] = str_replace('<SQL_HOST>', $sql['host'], $lng['mysql']['description']);
eval("echo \"" . getTemplate('mysql/mysql') . "\";"); eval("echo \"" . getTemplate('mysql/mysql') . "\";");
} elseif($page == 'mysqls') { } elseif($page == 'mysqls') {

View File

@@ -132,12 +132,17 @@ class Database {
* only give you the data ONCE as it disable itself * only give you the data ONCE as it disable itself
* after the first access to the data * after the first access to the data
* *
* @param bool $needsql
*/ */
public static function needSqlData($needsql = false) { public static function needSqlData() {
self::$_needsqldata = $needsql; self::$_needsqldata = true;
self::$_sqldata = array(); self::$_sqldata = array();
self::$_link = null; self::$_link = null;
// we need a connection here because
// if getSqlData() is called RIGHT after
// this function and no "real" PDO
// function was called, getDB() wasn't
// involved and no data collected
self::getDB();
} }
/** /**
@@ -147,16 +152,17 @@ class Database {
* @return array|bool * @return array|bool
*/ */
public static function getSqlData() { public static function getSqlData() {
$return = false;
if (self::$_sqldata !== null if (self::$_sqldata !== null
&& is_array(self::$_sqldata) && is_array(self::$_sqldata)
&& isset(self::$_sqldata['user']) && isset(self::$_sqldata['user'])
) { ) {
return self::$_sqldata; $return = self::$_sqldata;
// automatically disable sql-data // automatically disable sql-data
self::$_sqldata = null; self::$_sqldata = null;
self::$_needsqldata = false; self::$_needsqldata = false;
} }
return false; return $return;
} }
/** /**

View File

@@ -23,7 +23,7 @@ function correctMysqlUsers($mysql_access_host_array) {
// get sql-root access data // get sql-root access data
Database::needRoot(true); Database::needRoot(true);
Database::needSqlData(true); Database::needSqlData();
$sql_root = Database::getSqlData(); $sql_root = Database::getSqlData();
Database::needRoot(false); Database::needRoot(false);

View File

@@ -24,7 +24,7 @@ if ($settings['system']['backup_enabled'] == '1') {
// get sql-root access data for mysqldump // get sql-root access data for mysqldump
Database::needRoot(true); Database::needRoot(true);
Database::needSqlData(true); Database::needSqlData();
$sql_root = Database::getSqlData(); $sql_root = Database::getSqlData();
Database::needRoot(false); Database::needRoot(false);