From dbf55333763906fbb07a18fdbf6dd0ede63760c1 Mon Sep 17 00:00:00 2001 From: Marc Delisle Date: Thu, 9 Oct 2014 10:01:15 -0400 Subject: [PATCH] Refactor code duplication Signed-off-by: Marc Delisle --- libraries/server_privileges.lib.php | 142 +++++++++--------- test/libraries/PMA_server_privileges_test.php | 17 ++- 2 files changed, 77 insertions(+), 82 deletions(-) diff --git a/libraries/server_privileges.lib.php b/libraries/server_privileges.lib.php index 1dae51c1d6..12d17abfc4 100644 --- a/libraries/server_privileges.lib.php +++ b/libraries/server_privileges.lib.php @@ -2210,7 +2210,8 @@ function PMA_getHtmlListOfPrivs( $specific_table = (isset($current['Table_name']) && $current['Table_name'] != '*') ? $current['Table_name'] : ''; - $html_output .= PMA_getUserEditLink( + $html_output .= PMA_getUserLink( + 'edit', $current_user, $current_host, $specific_db, @@ -2228,83 +2229,67 @@ function PMA_getHtmlListOfPrivs( } /** - * Returns edit link for a user. + * Returns edit, revoke or export link for a user. * + * @param string $linktype The link type (edit | revoke | export) * @param string $username User name * @param string $hostname Host name * @param string $dbname Database name * @param string $tablename Table name + * @param string $initial Initial value * * @return string HTML code with link */ -function PMA_getUserEditLink($username, $hostname, $dbname = '', $tablename = '') -{ - return '' - . PMA_Util::getIcon('b_usredit.png', __('Edit Privileges')) - . ''; -} +function PMA_getUserLink( + $linktype, $username, $hostname, $dbname = '', $tablename = '', $initial = '' +) { + $html = ' $username, + 'hostname' => $hostname + ); + switch($linktype) { + case 'edit': + $params['dbname'] = $dbname; + $params['tablename'] = $tablename; + break; + case 'revoke': + $params['dbname'] = $dbname; + $params['tablename'] = $tablename; + $params['revokeall'] = 1; + break; + case 'export': + $params['initial'] = $initial; + $params['export'] = 1; + break; + } -/** - * Returns revoke link for a user. - * - * @param string $username User name - * @param string $hostname Host name - * @param string $dbname Database name - * @param string $tablename Table name - * - * @return string HTML code with link - */ -function PMA_getUserRevokeLink($username, $hostname, $dbname = '', $tablename = '') -{ - return '' - . PMA_Util::getIcon('b_usrdrop.png', __('Revoke')) - . ''; -} + $html .= ' href="server_privileges.php' + . PMA_URL_getCommon($params) + . '">'; -/** - * Returns export link for a user. - * - * @param string $username User name - * @param string $hostname Host name - * @param string $initial Initial value - * - * @return HTML code with link - */ -function PMA_getUserExportLink($username, $hostname, $initial = '') -{ - return '' - . PMA_Util::getIcon('b_tblexport.png', __('Export')) - . ''; + switch($linktype) { + case 'edit': + $html .= PMA_Util::getIcon('b_usredit.png', __('Edit Privileges')); + break; + case 'revoke': + $html .= PMA_Util::getIcon('b_usrdrop.png', __('Revoke')); + break; + case 'export': + $html .= PMA_Util::getIcon('b_tblexport.png', __('Export')); + break; + } + $html . ''; + + return $html; } /** @@ -2426,7 +2411,7 @@ function PMA_getExtraDataForAjaxBehavior( $new_user_string .=''; $new_user_string .= '' - . PMA_getUserEditLink($username, $hostname) + . PMA_getUserLink('edit', $username, $hostname) . '' . "\n"; if (isset($cfgRelation['menuswork']) && $user_group_count > 0) { @@ -2436,9 +2421,12 @@ function PMA_getExtraDataForAjaxBehavior( } $new_user_string .= '' - . PMA_getUserExportLink( + . PMA_getUserLink( + 'export', $username, $hostname, + '', + '', isset($_GET['initial']) ? $_GET['initial'] : '' ) . '' . "\n"; @@ -2750,7 +2738,8 @@ function PMA_getHtmlForUserRights($db_rights, $dbname, } $html_output .= '' . "\n" . ''; - $html_output .= PMA_getUserEditLink( + $html_output .= PMA_getUserLink( + 'edit', $username, $hostname, (!$pmaString->strlen($dbname)) ? $row['Db'] : $dbname, @@ -2762,7 +2751,8 @@ function PMA_getHtmlForUserRights($db_rights, $dbname, || isset($row['Table_name']) && $pmaString->strlen($row['Table_name']) ) { - $html_output .= PMA_getUserRevokeLink( + $html_output .= PMA_getUserLink( + 'revoke', $username, $hostname, (! $pmaString->strlen($dbname)) ? $row['Db'] : $dbname, @@ -3114,7 +3104,8 @@ function PMA_getHtmlTableBodyForUserRights($db_rights) . '' . "\n"; $html_output .= '' - . PMA_getUserEditLink( + . PMA_getUserLink( + 'edit', $host['User'], $host['Host'] ) @@ -3129,9 +3120,12 @@ function PMA_getHtmlTableBodyForUserRights($db_rights) } } $html_output .= '' - . PMA_getUserExportLink( + . PMA_getUserLink( + 'export', $host['User'], $host['Host'], + '', + '', isset($_GET['initial']) ? $_GET['initial'] : '' ) . ''; diff --git a/test/libraries/PMA_server_privileges_test.php b/test/libraries/PMA_server_privileges_test.php index d6111f94e0..b0cacd47ca 100644 --- a/test/libraries/PMA_server_privileges_test.php +++ b/test/libraries/PMA_server_privileges_test.php @@ -1453,19 +1453,20 @@ class PMA_ServerPrivileges_Test extends PHPUnit_Framework_TestCase } /** - * Test for PMA_getUserEditLink + * Test for PMA_getUserLink * * @return void */ - public function testPMAGetUserEditLink() + public function testPMAGetUserLink() { $username = "pma_username"; $hostname = "pma_hostname"; $dbname = "pma_dbname"; $tablename = "pma_tablename"; - //PMA_getUserEditLink - $html = PMA_getUserEditLink($username, $hostname, $dbname, $tablename); + $html = PMA_getUserLink( + 'edit', $username, $hostname, $dbname, $tablename + ); $url_html = PMA_URL_getCommon( array( @@ -1484,8 +1485,9 @@ class PMA_ServerPrivileges_Test extends PHPUnit_Framework_TestCase $html ); - //PMA_getUserRevokeLink - $html = PMA_getUserRevokeLink($username, $hostname, $dbname, $tablename); + $html = PMA_getUserLink( + 'revoke', $username, $hostname, $dbname, $tablename + ); $url_html = PMA_URL_getCommon( array( @@ -1505,8 +1507,7 @@ class PMA_ServerPrivileges_Test extends PHPUnit_Framework_TestCase $html ); - //PMA_getUserExportLink - $html = PMA_getUserExportLink($username, $hostname); + $html = PMA_getUserLink('export', $username, $hostname); $url_html = PMA_URL_getCommon( array(