/** * Display user rights in table rows(Table specific or database specific privs) * * @param array $db_rights user's database rights array * @param string $dbname database name * @param string $hostname host name * @param string $username username * * @return array $found_rows, $html_output */ function PMA_getHtmlForUserRights($db_rights, $dbname, $hostname, $username) { $html_output = ''; $found_rows = array(); // display rows if (count($db_rights) < 1) { $html_output .= '<tr class="odd">' . "\n" . '<td colspan="6"><center><i>' . __('None') . '</i></center></td>' . "\n" . '</tr>' . "\n"; } else { $odd_row = true; //while ($row = $GLOBALS['dbi']->fetchAssoc($res)) { foreach ($db_rights as $row) { $found_rows[] = !strlen($dbname) ? $row['Db'] : $row['Table_name']; $html_output .= '<tr class="' . ($odd_row ? 'odd' : 'even') . '">' . "\n" . '<td>' . htmlspecialchars(!strlen($dbname) ? $row['Db'] : $row['Table_name']) . '</td>' . "\n" . '<td><code>' . "\n" . ' ' . join(',' . "\n" . ' ', PMA_extractPrivInfo($row, true)) . "\n" . '</code></td>' . "\n" . '<td>' . (!strlen($dbname) && $row['Grant_priv'] == 'Y' || strlen($dbname) && in_array('Grant', explode(',', $row['Table_priv'])) ? __('Yes') : __('No')) . '</td>' . "\n" . '<td>'; if (!empty($row['Table_privs']) || !empty($row['Column_priv'])) { $html_output .= __('Yes'); } else { $html_output .= __('No'); } $html_output .= '</td>' . "\n" . '<td>'; $html_output .= PMA_getUserEditLink($username, $hostname, !strlen($dbname) ? $row['Db'] : $dbname, !strlen($dbname) ? '' : $row['Table_name']); $html_output .= '</td>' . "\n" . ' <td>'; if (!empty($row['can_delete']) || isset($row['Table_name']) && strlen($row['Table_name'])) { $html_output .= PMA_getUserRevokeLink($username, $hostname, !strlen($dbname) ? $row['Db'] : $dbname, !strlen($dbname) ? '' : $row['Table_name']); } $html_output .= '</td>' . "\n" . '</tr>' . "\n"; $odd_row = !$odd_row; } // end while } //end if return array($found_rows, $html_output); }
/** * Test for PMA_getUserEditLink * * @return void */ public function testPMAGetUserEditLink() { $username = "******"; $hostname = "pma_hostname"; $dbname = "pma_dbname"; $tablename = "pma_tablename"; //PMA_getUserEditLink $html = PMA_getUserEditLink($username, $hostname, $dbname, $tablename); $url_html = PMA_URL_getCommon(array('username' => $username, 'hostname' => $hostname, 'dbname' => $dbname, 'tablename' => $tablename)); $this->assertContains($url_html, $html); $this->assertContains(__('Edit Privileges'), $html); //PMA_getUserRevokeLink $html = PMA_getUserRevokeLink($username, $hostname, $dbname, $tablename); $url_html = PMA_URL_getCommon(array('username' => $username, 'hostname' => $hostname, 'dbname' => $dbname, 'tablename' => $tablename, 'revokeall' => 1)); $this->assertContains($url_html, $html); $this->assertContains(__('Revoke'), $html); //PMA_getUserExportLink $html = PMA_getUserExportLink($username, $hostname); $url_html = PMA_URL_getCommon(array('username' => $username, 'hostname' => $hostname, 'initial' => "", 'export' => 1)); $this->assertContains($url_html, $html); $this->assertContains(__('Export'), $html); }