示例#1
0
/**
 * 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);
 }