From c9268f80ad4bea38965af9a47d53538b12a91769 Mon Sep 17 00:00:00 2001 From: Kasun Chathuranga Date: Fri, 6 Sep 2013 07:22:00 +0530 Subject: [PATCH 1/7] Adhere to coding style --- libraries/server_privileges.lib.php | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/libraries/server_privileges.lib.php b/libraries/server_privileges.lib.php index d7018f2865..67e83daf1b 100644 --- a/libraries/server_privileges.lib.php +++ b/libraries/server_privileges.lib.php @@ -183,6 +183,11 @@ function PMA_extractPrivInfo($row = '', $enableHTML = false, $tablePrivs = false return $privs; } // end of the 'PMA_extractPrivInfo()' function +/** + * Returns an array of table grants and their descriptions + * + * @return array array of table grants + */ function PMA_getTableGrantsArray() { return array( @@ -1929,8 +1934,7 @@ function PMA_getHtmlForSpecificTablePrivileges($db, $table) list($list_of_privileges, $list_of_compared_privileges) = PMA_getListOfPrivilegesAndComparedPrivileges(); - $sql_query = - "(" + $sql_query = "(" . " SELECT " . $list_of_privileges . ", '*' AS `Db`" . " FROM `mysql`.`user`" . " WHERE NOT (" . $list_of_compared_privileges . ")" @@ -1978,7 +1982,9 @@ function PMA_getHtmlForSpecificTablePrivileges($db, $table) $privMap[$user][$host][] = $row; } - $html_output .= PMA_getHtmlTableBodyForSpecificDbOrTablePrivs($privMap, $db, $table); + $html_output .= PMA_getHtmlTableBodyForSpecificDbOrTablePrivs( + $privMap, $db, $table + ); $html_output .= ''; $html_output .= ''; $html_output .= ''; @@ -2012,13 +2018,15 @@ function PMA_getHtmlForSpecificTablePrivileges($db, $table) * * @return string $html_output */ -function PMA_getHtmlTableBodyForSpecificDbOrTablePrivs($privMap, $db, $table = null) { +function PMA_getHtmlTableBodyForSpecificDbOrTablePrivs($privMap, $db, $table = null) +{ $html_output = ''; $odd_row = true; if (! empty($privMap)) { foreach ($privMap as $current_user => $val) { foreach ($val as $current_host => $current_privileges) { - $html_output .= ''; + $html_output .= ''; // user $html_output .= ''; + $html_output .= '' + . __('Any') . ''; } else { $html_output .= htmlspecialchars($current_user); } @@ -2059,7 +2068,9 @@ function PMA_getHtmlTableBodyForSpecificDbOrTablePrivs($privMap, $db, $table = n } } else { $html_output .= __('wildcard'). ': ' - . '' . htmlspecialchars($current['Db']) . ''; + . '' + . htmlspecialchars($current['Db']) + . ''; } $html_output .= ''; @@ -2069,7 +2080,7 @@ function PMA_getHtmlTableBodyForSpecificDbOrTablePrivs($privMap, $db, $table = n $privList = explode(',', $current['Table_priv']); $privs = array(); $grantsArr = PMA_getTableGrantsArray(); - foreach($grantsArr as $grant) { + foreach ($grantsArr as $grant) { $privs[$grant[0]] = 'N'; foreach ($privList as $priv) { if ($grant[0] == $priv) { From 0c284306596c6f5a50c053e369044a35974c59b0 Mon Sep 17 00:00:00 2001 From: Kasun Chathuranga Date: Fri, 6 Sep 2013 07:29:44 +0530 Subject: [PATCH 2/7] Wildcards are not applicable to table privileges --- libraries/server_privileges.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/server_privileges.lib.php b/libraries/server_privileges.lib.php index 67e83daf1b..b4c3ddf0cb 100644 --- a/libraries/server_privileges.lib.php +++ b/libraries/server_privileges.lib.php @@ -2060,7 +2060,7 @@ function PMA_getHtmlTableBodyForSpecificDbOrTablePrivs($privMap, $db, $table = n $html_output .= __('global'); } elseif ($current['Db'] == PMA_Util::escapeMysqlWildcards($db)) { if (isset($current['Table_name']) - && $current['Table_name'] == PMA_Util::escapeMysqlWildcards($table) + && $current['Table_name'] == $table ) { $html_output .= __('table-specific'); } else { From 17de8a6a49d4ff77edcd2f380bb3de855332222c Mon Sep 17 00:00:00 2001 From: Kasun Chathuranga Date: Fri, 6 Sep 2013 07:35:09 +0530 Subject: [PATCH 3/7] Shorten a lines exceeding 85 characters --- libraries/server_privileges.lib.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/libraries/server_privileges.lib.php b/libraries/server_privileges.lib.php index b4c3ddf0cb..b94dba1128 100644 --- a/libraries/server_privileges.lib.php +++ b/libraries/server_privileges.lib.php @@ -2000,8 +2000,9 @@ function PMA_getHtmlForSpecificTablePrivileges($db, $table) 'tablename' => $table ) ) - .'" rel="' - . PMA_URL_getCommon(array('checkprivsdb' => $db, 'checkprivstable' => $table)) + . '" rel="' . PMA_URL_getCommon( + array('checkprivsdb' => $db, 'checkprivstable' => $table) + ) . '" class="ajax" name="table_specific">' . PMA_Util::getIcon('b_usradd.png') . __('Add user') . ''; @@ -2122,11 +2123,16 @@ function PMA_getHtmlTableBodyForSpecificDbOrTablePrivs($privMap, $db, $table = n // action $html_output .= ''; + $specific_db = (isset($current['Db']) && $current['Db'] != '*') + ? $current['Db'] : ''; + $specific_table = (isset($current['Table_name']) + && $current['Table_name'] != '*') + ? $current['Table_name'] : ''; $html_output .= PMA_getUserEditLink( $current_user, $current_host, - (isset($current['Db']) && $current['Db'] != '*') ? $current['Db'] : '', - (isset($current['Table_name']) && $current['Table_name'] != '*') ? $current['Table_name'] : '' + $specific_db, + $specific_table ); $html_output .= ''; From 07444b47088c552efdeb5e6bf38618f178a9ab66 Mon Sep 17 00:00:00 2001 From: Kasun Chathuranga Date: Fri, 6 Sep 2013 21:46:53 +0530 Subject: [PATCH 4/7] Properly identify grant type --- libraries/server_privileges.lib.php | 34 ++++++++++++++--------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/libraries/server_privileges.lib.php b/libraries/server_privileges.lib.php index b94dba1128..2668a99524 100644 --- a/libraries/server_privileges.lib.php +++ b/libraries/server_privileges.lib.php @@ -1828,14 +1828,14 @@ function PMA_getHtmlForSpecificDbPrivileges($db) list($list_of_privileges, $list_of_compared_privileges) = PMA_getListOfPrivilegesAndComparedPrivileges(); - $sql_query = '(SELECT ' . $list_of_privileges . ', `Db`' + $sql_query = '(SELECT ' . $list_of_privileges . ', `Db`, \'d\' AS `Type`' .' FROM `mysql`.`db`' .' WHERE \'' . PMA_Util::sqlAddSlashes($db) . "'" .' LIKE `Db`' .' AND NOT (' . $list_of_compared_privileges. ')) ' .'UNION ' - .'(SELECT ' . $list_of_privileges . ', \'*\' AS `Db`' + .'(SELECT ' . $list_of_privileges . ', \'*\' AS `Db`, \'g\' AS `Type`' .' FROM `mysql`.`user` ' .' WHERE NOT (' . $list_of_compared_privileges . ')) ' .' ORDER BY `User` ASC,' @@ -1935,13 +1935,13 @@ function PMA_getHtmlForSpecificTablePrivileges($db, $table) list($list_of_privileges, $list_of_compared_privileges) = PMA_getListOfPrivilegesAndComparedPrivileges(); $sql_query = "(" - . " SELECT " . $list_of_privileges . ", '*' AS `Db`" + . " SELECT " . $list_of_privileges . ", '*' AS `Db`, 'g' AS `Type`" . " FROM `mysql`.`user`" . " WHERE NOT (" . $list_of_compared_privileges . ")" . ")" . " UNION " . "(" - . " SELECT " . $list_of_privileges . ", `Db`" + . " SELECT " . $list_of_privileges . ", `Db`, 'd' AS `Type`" . " FROM `mysql`.`db`" . " WHERE '" . PMA_Util::sqlAddSlashes($db) . "' LIKE `Db`" . " AND NOT (" . $list_of_compared_privileges. ")" @@ -1962,7 +1962,7 @@ function PMA_getHtmlForSpecificTablePrivileges($db, $table) $privMap[$user][$host][] = $row; } - $sql_query = "SELECT `User`, `Host`, `Db`, `Table_name`, `Table_priv`" + $sql_query = "SELECT `User`, `Host`, `Db`, 't' AS `Type`, `Table_name`, `Table_priv`" . " FROM `mysql`.`tables_priv`" . " WHERE '" . PMA_Util::sqlAddSlashes($db) . "' LIKE `Db`" . " AND '" . PMA_Util::sqlAddSlashes($table) . "' LIKE `Table_name`" @@ -1991,7 +1991,7 @@ function PMA_getHtmlForSpecificTablePrivileges($db, $table) // Offer to create a new user for the current database $html_output .= '
' - . '' . _pgettext('Create new user', 'New') . ''; + . '' . _pgettext('Create new user', 'New') . ''; $html_output .= ' Date: Fri, 6 Sep 2013 22:25:38 +0530 Subject: [PATCH 7/7] Handle sub tabs properly --- libraries/server_privileges.lib.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/libraries/server_privileges.lib.php b/libraries/server_privileges.lib.php index b1c4ac99cf..85cdd47e9c 100644 --- a/libraries/server_privileges.lib.php +++ b/libraries/server_privileges.lib.php @@ -4526,11 +4526,13 @@ function PMA_getHtmlForSubMenusOnUsersPage($selfUrl) $items = array( array( 'name' => __('Users overview'), - 'url' => 'server_privileges.php' + 'url' => 'server_privileges.php', + 'specific_params' => '&viewing_mode=server' ), array( 'name' => __('User groups'), - 'url' => 'server_user_groups.php' + 'url' => 'server_user_groups.php', + 'specific_params' => '' ) ); @@ -4542,7 +4544,8 @@ function PMA_getHtmlForSubMenusOnUsersPage($selfUrl) } $retval .= '
  • '; $retval .= ''; + $retval .= ' href="' . $item['url'] + . '?' . $url_params . $item['specific_params'] . '">'; $retval .= $item['name']; $retval .= ''; $retval .= '
  • ';