cache is_superuser info

This commit is contained in:
Sebastian Mendel
2008-01-21 12:14:00 +00:00
parent 4a3a83e40c
commit 67b6618439

View File

@@ -1156,19 +1156,29 @@ function PMA_DBI_get_warnings($link = null)
* returns true (int > 0) if current user is superuser * returns true (int > 0) if current user is superuser
* otherwise 0 * otherwise 0
* *
* @return integer $is_superuser * @uses $_SESSION['is_superuser'] for caching
* @uses $GLOBALS['userlink']
* @uses PMA_DBI_try_query()
* @uses PMA_DBI_QUERY_STORE
* @return integer $is_superuser
*/ */
function PMA_isSuperuser() { function PMA_isSuperuser()
{
if (isset($_SESSION['is_superuser'])) {
return $_SESSION['is_superuser'];
}
// with mysql extension, when connection failed we don't have // with mysql extension, when connection failed we don't have
// a $userlink // a $userlink
if (isset($GLOBALS['userlink'])) { if (isset($GLOBALS['userlink'])) {
return PMA_DBI_try_query('SELECT COUNT(*) FROM mysql.user', $_SESSION['is_superuser'] = (bool) PMA_DBI_try_query('SELECT COUNT(*) FROM mysql.user',
$GLOBALS['userlink'], PMA_DBI_QUERY_STORE); $GLOBALS['userlink'], PMA_DBI_QUERY_STORE);
} else { } else {
return false; $_SESSION['is_superuser'] = false;
} }
}
return $_SESSION['is_superuser'];
}
/** /**
* returns an array of PROCEDURE or FUNCTION names for a db * returns an array of PROCEDURE or FUNCTION names for a db
@@ -1180,8 +1190,8 @@ function PMA_isSuperuser() {
* *
* @return array the procedure names or function names * @return array the procedure names or function names
*/ */
function PMA_DBI_get_procedures_or_functions($db, $which, $link = null) { function PMA_DBI_get_procedures_or_functions($db, $which, $link = null)
{
$shows = PMA_DBI_fetch_result('SHOW ' . $which . ' STATUS;', null, null, $link); $shows = PMA_DBI_fetch_result('SHOW ' . $which . ' STATUS;', null, null, $link);
$result = array(); $result = array();
foreach ($shows as $one_show) { foreach ($shows as $one_show) {
@@ -1203,8 +1213,8 @@ function PMA_DBI_get_procedures_or_functions($db, $which, $link = null) {
* *
* @return string the procedure's or function's definition * @return string the procedure's or function's definition
*/ */
function PMA_DBI_get_procedure_or_function_def($db, $which, $proc_or_function_name, $link = null) { function PMA_DBI_get_procedure_or_function_def($db, $which, $proc_or_function_name, $link = null)
{
$returned_field = array('PROCEDURE' => 'Create Procedure', 'FUNCTION' => 'Create Function'); $returned_field = array('PROCEDURE' => 'Create Procedure', 'FUNCTION' => 'Create Function');
$query = 'SHOW CREATE ' . $which . ' ' . PMA_backquote($db) . '.' . PMA_backquote($proc_or_function_name); $query = 'SHOW CREATE ' . $which . ' ' . PMA_backquote($db) . '.' . PMA_backquote($proc_or_function_name);
return(PMA_DBI_fetch_value($query, 0, $returned_field[$which])); return(PMA_DBI_fetch_value($query, 0, $returned_field[$which]));
@@ -1219,8 +1229,8 @@ function PMA_DBI_get_procedure_or_function_def($db, $which, $proc_or_function_na
* *
* @return array information about triggers (may be empty) * @return array information about triggers (may be empty)
*/ */
function PMA_DBI_get_triggers($db, $table) { function PMA_DBI_get_triggers($db, $table)
{
$result = array(); $result = array();
$triggers = PMA_DBI_fetch_result("SELECT TRIGGER_SCHEMA, TRIGGER_NAME, EVENT_MANIPULATION, ACTION_TIMING, ACTION_STATEMENT, EVENT_OBJECT_SCHEMA, EVENT_OBJECT_TABLE FROM information_schema.TRIGGERS WHERE EVENT_OBJECT_SCHEMA= '" . PMA_sqlAddslashes($db,true) . "' and EVENT_OBJECT_TABLE = '" . PMA_sqlAddslashes($table, true) . "';"); $triggers = PMA_DBI_fetch_result("SELECT TRIGGER_SCHEMA, TRIGGER_NAME, EVENT_MANIPULATION, ACTION_TIMING, ACTION_STATEMENT, EVENT_OBJECT_SCHEMA, EVENT_OBJECT_TABLE FROM information_schema.TRIGGERS WHERE EVENT_OBJECT_SCHEMA= '" . PMA_sqlAddslashes($db,true) . "' and EVENT_OBJECT_TABLE = '" . PMA_sqlAddslashes($table, true) . "';");