Skip to content

Commit

Permalink
Merge pull request #11832 from devenbansod/fix_11752
Browse files Browse the repository at this point in the history
Fix #11752
  • Loading branch information
nijel committed Jan 14, 2016
2 parents d7b3529 + 3b86443 commit a478437
Show file tree
Hide file tree
Showing 8 changed files with 134 additions and 321 deletions.
372 changes: 101 additions & 271 deletions libraries/check_user_privileges.lib.php

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion libraries/controllers/TableStructureController.class.php
Expand Up @@ -853,7 +853,7 @@ protected function adjustColumnPrivileges($adjust_privileges)

if ((!defined('PMA_DRIZZLE') || !PMA_DRIZZLE)
&& Util\get($GLOBALS, 'col_priv', false)
&& Util\get($GLOBALS, 'flush_priv', false)
&& Util\get($GLOBALS, 'is_reload_priv', false)
) {
$this->dbi->selectDb('mysql');

Expand Down
57 changes: 22 additions & 35 deletions libraries/operations.lib.php
Expand Up @@ -81,11 +81,9 @@ function PMA_getHtmlForRenameDatabase($db)
. 'value="' . htmlspecialchars($db) . '"/>';

if (! PMA_DRIZZLE) {
if (isset($GLOBALS['db_priv']) && $GLOBALS['db_priv']
&& isset($GLOBALS['table_priv']) && $GLOBALS['table_priv']
&& isset($GLOBALS['col_priv']) && $GLOBALS['col_priv']
&& isset($GLOBALS['proc_priv']) && $GLOBALS['proc_priv']
&& isset($GLOBALS['flush_priv']) && $GLOBALS['flush_priv']
if ($GLOBALS['db_priv'] && $GLOBALS['table_priv']
&& $GLOBALS['col_priv'] && $GLOBALS['proc_priv']
&& $GLOBALS['is_reload_priv']
) {
$html_output .= '<input type="checkbox" name="adjust_privileges" '
. 'value="1" id="checkbox_adjust_privileges" checked="checked" />';
Expand Down Expand Up @@ -229,11 +227,9 @@ function PMA_getHtmlForCopyDatabase($db)
$html_output .= '<br />';

if (! PMA_DRIZZLE) {
if (isset($GLOBALS['db_priv']) && $GLOBALS['db_priv']
&& isset($GLOBALS['table_priv']) && $GLOBALS['table_priv']
&& isset($GLOBALS['col_priv']) && $GLOBALS['col_priv']
&& isset($GLOBALS['proc_priv']) && $GLOBALS['proc_priv']
&& isset($GLOBALS['flush_priv']) && $GLOBALS['flush_priv']
if ($GLOBALS['db_priv'] && $GLOBALS['table_priv']
&& $GLOBALS['col_priv'] && $GLOBALS['proc_priv']
&& $GLOBALS['is_reload_priv']
) {
$html_output .= '<input type="checkbox" name="adjust_privileges" '
. 'value="1" id="checkbox_privileges" checked="checked" />';
Expand Down Expand Up @@ -587,11 +583,9 @@ function PMA_handleTheViews($views, $move, $db)
function PMA_AdjustPrivileges_moveDB($oldDb, $newname)
{
if (! PMA_DRIZZLE) {
if (isset($GLOBALS['db_priv']) && $GLOBALS['db_priv']
&& isset($GLOBALS['table_priv']) && $GLOBALS['table_priv']
&& isset($GLOBALS['col_priv']) && $GLOBALS['col_priv']
&& isset($GLOBALS['proc_priv']) && $GLOBALS['proc_priv']
&& isset($GLOBALS['flush_priv']) && $GLOBALS['flush_priv']
if ($GLOBALS['db_priv'] && $GLOBALS['table_priv']
&& $GLOBALS['col_priv'] && $GLOBALS['proc_priv']
&& $GLOBALS['is_reload_priv']
) {
$GLOBALS['dbi']->selectDb('mysql');

Expand Down Expand Up @@ -637,11 +631,9 @@ function PMA_AdjustPrivileges_moveDB($oldDb, $newname)
function PMA_AdjustPrivileges_copyDB($oldDb, $newname)
{
if (! PMA_DRIZZLE) {
if (isset($GLOBALS['db_priv']) && $GLOBALS['db_priv']
&& isset($GLOBALS['table_priv']) && $GLOBALS['table_priv']
&& isset($GLOBALS['col_priv']) && $GLOBALS['col_priv']
&& isset($GLOBALS['proc_priv']) && $GLOBALS['proc_priv']
&& isset($GLOBALS['flush_priv']) && $GLOBALS['flush_priv']
if ($GLOBALS['db_priv'] && $GLOBALS['table_priv']
&& $GLOBALS['col_priv'] && $GLOBALS['proc_priv']
&& $GLOBALS['is_reload_priv']
) {
$GLOBALS['dbi']->selectDb('mysql');

Expand Down Expand Up @@ -860,9 +852,8 @@ function PMA_getHtmlForMoveTable()
. '</label><br />';

if (! PMA_DRIZZLE) {
if (isset($GLOBALS['table_priv']) && $GLOBALS['table_priv']
&& isset($GLOBALS['col_priv']) && $GLOBALS['col_priv']
&& isset($GLOBALS['flush_priv']) && $GLOBALS['flush_priv']
if ($GLOBALS['table_priv'] && $GLOBALS['col_priv']
&& $GLOBALS['is_reload_priv']
) {
$html_output .= '<input type="checkbox" name="adjust_privileges" '
. 'value="1" id="checkbox_privileges_tables_move" '
Expand Down Expand Up @@ -954,9 +945,8 @@ function PMA_getHtmlForRenameTable()
. '<tr><td></td><td>';

if (! PMA_DRIZZLE) {
if (isset($GLOBALS['table_priv']) && $GLOBALS['table_priv']
&& isset($GLOBALS['col_priv']) && $GLOBALS['col_priv']
&& isset($GLOBALS['flush_priv']) && $GLOBALS['flush_priv']
if ($GLOBALS['table_priv'] && $GLOBALS['col_priv']
&& $GLOBALS['is_reload_priv']
) {
$html_output .= '<input type="checkbox" name="adjust_privileges" '
. 'value="1" id="checkbox_privileges_table_options" '
Expand Down Expand Up @@ -1309,9 +1299,8 @@ function PMA_getHtmlForCopytable()
$html_output .= '<br />';

if (! PMA_DRIZZLE) {
if (isset($GLOBALS['table_priv']) && $GLOBALS['table_priv']
&& isset($GLOBALS['col_priv']) && $GLOBALS['col_priv']
&& isset($GLOBALS['flush_priv']) && $GLOBALS['flush_priv']
if ($GLOBALS['table_priv'] && $GLOBALS['col_priv']
&& $GLOBALS['is_reload_priv']
) {
$html_output .= '<input type="checkbox" name="adjust_privileges" '
. 'value="1" id="checkbox_adjust_privileges" checked="checked" />';
Expand Down Expand Up @@ -1962,9 +1951,8 @@ function PMA_getQueryAndResultForPartition()
function PMA_AdjustPrivileges_renameOrMoveTable($oldDb, $oldTable, $newDb, $newTable)
{
if (! PMA_DRIZZLE) {
if (isset($GLOBALS['table_priv']) && $GLOBALS['table_priv']
&& isset($GLOBALS['col_priv']) && $GLOBALS['col_priv']
&& isset($GLOBALS['flush_priv']) && $GLOBALS['flush_priv']
if ($GLOBALS['table_priv'] && $GLOBALS['col_priv']
&& $GLOBALS['is_reload_priv']
) {
$GLOBALS['dbi']->selectDb('mysql');

Expand Down Expand Up @@ -2002,9 +1990,8 @@ function PMA_AdjustPrivileges_renameOrMoveTable($oldDb, $oldTable, $newDb, $newT
function PMA_AdjustPrivileges_copyTable($oldDb, $oldTable, $newDb, $newTable)
{
if (! PMA_DRIZZLE) {
if (isset($GLOBALS['table_priv']) && $GLOBALS['table_priv']
&& isset($GLOBALS['col_priv']) && $GLOBALS['col_priv']
&& isset($GLOBALS['flush_priv']) && $GLOBALS['flush_priv']
if ($GLOBALS['table_priv'] && $GLOBALS['col_priv']
&& $GLOBALS['is_reload_priv']
) {
$GLOBALS['dbi']->selectDb('mysql');

Expand Down
1 change: 0 additions & 1 deletion libraries/plugins/auth/AuthenticationCookie.class.php
Expand Up @@ -448,7 +448,6 @@ public function authCheck()
PMA_Util::cacheUnset('col_priv');
PMA_Util::cacheUnset('table_priv');
PMA_Util::cacheUnset('proc_priv');
PMA_Util::cacheUnset('flush_priv');

$GLOBALS['no_activity'] = true;
$this->authFails();
Expand Down
16 changes: 7 additions & 9 deletions libraries/rte/rte_routines.lib.php
Expand Up @@ -316,16 +316,15 @@ function PMA_RTN_backupPrivileges()
return array();
}

if (!(isset($GLOBALS['proc_priv']) && $GLOBALS['proc_priv']
&& isset($GLOBALS['flush_priv'])
&& $GLOBALS['flush_priv'])
if (! $GLOBALS['proc_priv']
|| ! $GLOBALS['is_reload_priv']
) {
return array();
}

// Backup the Old Privileges before dropping
// if $_REQUEST['item_adjust_privileges'] set
if (!isset($_REQUEST['item_adjust_privileges'])
if (! isset($_REQUEST['item_adjust_privileges'])
|| empty($_REQUEST['item_adjust_privileges'])
) {
return array();
Expand Down Expand Up @@ -391,9 +390,8 @@ function PMA_RTN_createRoutine(
$resultAdjust = false;

if (!defined('PMA_DRIZZLE') || !PMA_DRIZZLE) {
if (isset($GLOBALS['proc_priv']) && $GLOBALS['proc_priv']
&& isset($GLOBALS['flush_priv'])
&& $GLOBALS['flush_priv']
if ($GLOBALS['proc_priv']
&& $GLOBALS['is_reload_priv']
) {
// Insert all the previous privileges
// but with the new name and the new type
Expand Down Expand Up @@ -999,8 +997,8 @@ function PMA_RTN_getEditorForm($mode, $operation, $routine)
$retval .= PMA_Util::showDocu('faq', 'faq6-39');
$retval .= "</td>";
if (! defined('PMA_DRIZZLE') || ! PMA_DRIZZLE) {
if (isset($GLOBALS['proc_priv']) && $GLOBALS['proc_priv']
&& isset($GLOBALS['flush_priv']) && $GLOBALS['flush_priv']
if ($GLOBALS['proc_priv']
&& $GLOBALS['is_reload_priv']
) {
$retval .= " <td><input type='checkbox' "
. "name='item_adjust_privileges' value='1' checked /></td>";
Expand Down
2 changes: 1 addition & 1 deletion libraries/server_privileges.lib.php
Expand Up @@ -4675,7 +4675,7 @@ function PMA_getHtmlForUserOverview($pmaThemeImage, $text_dir)
if (! $GLOBALS['is_ajax_request']
|| ! empty($_REQUEST['ajax_page_request'])
) {
if (isset($GLOBALS['flush_priv']) && $GLOBALS['flush_priv']) {
if ($GLOBALS['is_reload_priv']) {
$flushnote = new PMA_Message(
__(
'Note: phpMyAdmin gets the users\' privileges directly '
Expand Down
3 changes: 1 addition & 2 deletions templates/columns_definitions/column_attributes.phtml
Expand Up @@ -87,8 +87,7 @@ $ci_offset = -1;
<?php if (isset($_REQUEST['change_column']) && !empty($_REQUEST['change_column']) && ! PMA_DRIZZLE): ?>
<!-- column Adjust privileges, Only for 'Edit' Column(s) -->
<td class="center">
<?php $privs_available = isset($GLOBALS['col_priv']) && $GLOBALS['col_priv']
&& isset($GLOBALS['flush_priv']) && $GLOBALS['flush_priv']; ?>
<?php $privs_available = $GLOBALS['col_priv'] && $GLOBALS['is_reload_priv']; ?>
<?php echo PMA\Template::get('columns_definitions/column_adjust_privileges')
->render(array(
'columnNumber' => $columnNumber,
Expand Down
2 changes: 1 addition & 1 deletion test/classes/controllers/TableStructureController_test.php
Expand Up @@ -227,7 +227,7 @@ public function testAdjustColumnPrivilegesDrizzle()
'col1' => 'col2'
);
$GLOBALS['col_priv'] = true;
$GLOBALS['flush_priv'] = true;
$GLOBALS['is_reload_priv'] = true;
$this->assertEquals(
true,
$method->invokeArgs($ctrl, array($adjust_privileges))
Expand Down

0 comments on commit a478437

Please sign in to comment.