diff --git a/libraries/check_user_privileges.lib.php b/libraries/check_user_privileges.lib.php index 1b57c4e8c656..67a85dbfa140 100644 --- a/libraries/check_user_privileges.lib.php +++ b/libraries/check_user_privileges.lib.php @@ -39,6 +39,22 @@ function PMA_checkRequiredPrivilegesForFlushing() */ function PMA_checkRequiredPrivilgesForAdjust() { + if (PMA_Util::cacheExists('db_priv')) { + $GLOBALS['db_priv'] = PMA_Util::cacheGet( + 'db_priv' + ); + $GLOBALS['col_priv'] = PMA_Util::cacheGet( + 'col_priv' + ); + $GLOBALS['table_priv'] = PMA_Util::cacheGet( + 'table_priv' + ); + $GLOBALS['proc_priv'] = PMA_Util::cacheGet( + 'proc_priv' + ); + return; + } + $privs_available = true; // FOR DB PRIVS $select_privs_available = $GLOBALS['dbi']->tryQuery( @@ -214,6 +230,12 @@ function PMA_checkRequiredPrivilgesForAdjust() // Save the value $GLOBALS['proc_priv'] = $privs_available; + // must also cacheUnset() them in + // libraries/plugins/auth/AuthenticationCookie.class.php + PMA_Util::cacheSet('proc_priv', $GLOBALS['proc_priv']); + PMA_Util::cacheSet('table_priv', $GLOBALS['table_priv']); + PMA_Util::cacheSet('col_priv', $GLOBALS['col_priv']); + PMA_Util::cacheSet('db_priv', $GLOBALS['db_priv']); } /** diff --git a/libraries/plugins/auth/AuthenticationCookie.class.php b/libraries/plugins/auth/AuthenticationCookie.class.php index 8f82c6e36a49..431850270948 100644 --- a/libraries/plugins/auth/AuthenticationCookie.class.php +++ b/libraries/plugins/auth/AuthenticationCookie.class.php @@ -444,6 +444,11 @@ public function authCheck() PMA_Util::cacheUnset('db_to_create'); PMA_Util::cacheUnset('dbs_where_create_table_allowed'); PMA_Util::cacheUnset('dbs_to_test'); + PMA_Util::cacheUnset('db_priv'); + PMA_Util::cacheUnset('col_priv'); + PMA_Util::cacheUnset('table_priv'); + PMA_Util::cacheUnset('proc_priv'); + $GLOBALS['no_activity'] = true; $this->authFails(); if (! defined('TESTSUITE')) {