bug 443710

This commit is contained in:
Marc Delisle
2001-07-24 17:25:52 +00:00
parent cdebb3173c
commit e6bb08ef9c
2 changed files with 19 additions and 9 deletions

View File

@@ -8,6 +8,8 @@ $Source$
2001-07-24 Marc Delisle <lem9@users.sourceforge.net> 2001-07-24 Marc Delisle <lem9@users.sourceforge.net>
* updates to french * updates to french
* new slovak translation thanks to lubos klokner <erkac@vault-tec.sk> * new slovak translation thanks to lubos klokner <erkac@vault-tec.sk>
* main.php3: bug 443710 Create New Database option: was working
only if stduser has Global privileges on all databases.
2001-07-24 Steve ALberty <alberty@neptunlabs.de> 2001-07-24 Steve ALberty <alberty@neptunlabs.de>
* tbl_copy.php3: fix parameter count, thanks Marc * tbl_copy.php3: fix parameter count, thanks Marc

View File

@@ -116,17 +116,17 @@ if ($server == 0 || count($cfgServers) > 1) {
if ($server > 0 if ($server > 0
&& empty($cfgServer['only_db'])) && empty($cfgServer['only_db']))
{ {
// 2.1. With authentification // 2.1. With authentication
if ($cfgServer['adv_auth']) if ($cfgServer['adv_auth'])
{ {
// Get user's rights // Get user's rights
if (empty($cfgServer['port'])) { if (empty($cfgServer['port'])) {
$dbh = mysql_connect($cfgServer['host'], $cfgServer['stduser'], $cfgServer['stdpass']); $stdlink = mysql_connect($cfgServer['host'], $cfgServer['stduser'], $cfgServer['stdpass']);
} else { } else {
$dbh = mysql_connect($cfgServer['host'] . ':' . $cfgServer['port'], $cfgServer['stduser'], $cfgServer['stdpass']); $stdlink = mysql_connect($cfgServer['host'] . ':' . $cfgServer['port'], $cfgServer['stduser'], $cfgServer['stdpass']);
} }
// Does user have global Create priv? // Does user have global Create priv?
$rs_usr = mysql_query('select * from mysql.user where User="' . $cfgServer['user'] . '"', $dbh); $rs_usr = mysql_query('select * from mysql.user where User="' . $cfgServer['user'] . '"', $stdlink);
$result_usr = mysql_fetch_array($rs_usr); $result_usr = mysql_fetch_array($rs_usr);
$create = ($result_usr['Create_priv'] == 'Y'); $create = ($result_usr['Create_priv'] == 'Y');
$db_to_create = ""; $db_to_create = "";
@@ -137,15 +137,23 @@ if ($server > 0
// (Note: we only get here after a browser reload, I don't know why) // (Note: we only get here after a browser reload, I don't know why)
if (!$create) { if (!$create) {
$rs_usr = mysql_query('select Db from mysql.db where User="'
. $cfgServer['user'] . '"', $dbh); if (empty($cfgServer['port'])) {
while ($row = mysql_fetch_array($rs_usr)) { $userlink = mysql_connect($cfgServer['host'], $cfgServer['user'], $cfgServer['password']) or mysql_die();
if (!mysql_select_db($row['Db'])) { } else {
$userlink = mysql_connect($cfgServer['host'].":".
$cfgServer['port'], $cfgServer['user'],
$cfgServer['password']) or mysql_die();
}
$rs_usr = mysql_query('select Db from mysql.db where User="'
. $cfgServer['user'] . '"', $stdlink);
while ($row = mysql_fetch_array($rs_usr)) {
if (!mysql_select_db($row['Db'],$userlink)) {
$db_to_create = $row['Db']; $db_to_create = $row['Db'];
$create=true; $create=true;
break; break;
} }
} }
} }
// The user is allowed the create a db // The user is allowed the create a db
if ($create) { if ($create) {