From 22bf28e9ce6a68e652c0f81b25ac96941b6708cc Mon Sep 17 00:00:00 2001 From: "J.M" Date: Fri, 27 Dec 2013 16:40:41 +0100 Subject: [PATCH 1/5] Extract PMA_getUserGroupCount helper function Signed-off-by: J.M --- libraries/server_privileges.lib.php | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/libraries/server_privileges.lib.php b/libraries/server_privileges.lib.php index 86aa339f50..a00d470a56 100644 --- a/libraries/server_privileges.lib.php +++ b/libraries/server_privileges.lib.php @@ -2249,6 +2249,23 @@ function PMA_getUserGroupEditLink($username) . ''; } +/** + * Returns number of defined user groups + * + * @return integer $user_group_count + */ +function PMA_getUserGroupCount() +{ + $user_group_table = PMA_Util::backquote($GLOBALS['cfg']['Server']['pmadb']) + . '.' . PMA_Util::backquote($GLOBALS['cfg']['Server']['usergroups']); + $sql_query = 'SELECT COUNT(*) FROM ' . $user_group_table; + $user_group_count = $GLOBALS['dbi']->fetchValue( + $sql_query, 0, 0, $GLOBALS['controllink'] + ); + + return $user_group_count; +} + /** * This function return the extra data array for the ajax behavior * @@ -2939,12 +2956,7 @@ function PMA_getTableBodyForUserRightsTable($db_rights) } $GLOBALS['dbi']->freeResult($result); - $userGroupTable = PMA_Util::backquote($GLOBALS['cfg']['Server']['pmadb']) - . "." . PMA_Util::backquote($GLOBALS['cfg']['Server']['usergroups']); - $sqlQuery = "SELECT COUNT(*) FROM " . $userGroupTable; - $userGroupCount = $GLOBALS['dbi']->fetchValue( - $sqlQuery, 0, 0, $GLOBALS['controllink'] - ); + $user_group_count = PMA_getUserGroupCount(); } $odd_row = true; @@ -3008,7 +3020,7 @@ function PMA_getTableBodyForUserRightsTable($db_rights) $host['Host'] ) . ''; - if ($GLOBALS['cfgRelation']['menuswork'] && $userGroupCount > 0) { + if ($GLOBALS['cfgRelation']['menuswork'] && $user_group_count > 0) { if (empty($host['User'])) { $html_output .= ''; } else { From 6ce9951f6c1aedba28e6d20182f0c4cc7dcdea9b Mon Sep 17 00:00:00 2001 From: "J.M" Date: Fri, 27 Dec 2013 16:44:37 +0100 Subject: [PATCH 2/5] Rename local variables in PMA_getTableBodyForUserRightsTable function (no camel-case in variable names) Signed-off-by: J.M --- libraries/server_privileges.lib.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/libraries/server_privileges.lib.php b/libraries/server_privileges.lib.php index a00d470a56..395c2438b3 100644 --- a/libraries/server_privileges.lib.php +++ b/libraries/server_privileges.lib.php @@ -2944,14 +2944,14 @@ function PMA_getUsersOverview($result, $db_rights, $pmaThemeImage, $text_dir) function PMA_getTableBodyForUserRightsTable($db_rights) { if ($GLOBALS['cfgRelation']['menuswork']) { - $usersTable = PMA_Util::backquote($GLOBALS['cfg']['Server']['pmadb']) + $users_table = PMA_Util::backquote($GLOBALS['cfg']['Server']['pmadb']) . "." . PMA_Util::backquote($GLOBALS['cfg']['Server']['users']); - $sqlQuery = "SELECT * FROM " . $usersTable; - $result = PMA_queryAsControlUser($sqlQuery, false); - $groupAssignment = array(); + $sql_query = 'SELECT * FROM ' . $users_table; + $result = PMA_queryAsControlUser($sql_query, false); + $group_assignment = array(); if ($result) { while ($row = $GLOBALS['dbi']->fetchAssoc($result)) { - $groupAssignment[$row['username']] = $row['usergroup']; + $group_assignment[$row['username']] = $row['usergroup']; } } $GLOBALS['dbi']->freeResult($result); @@ -3004,8 +3004,8 @@ function PMA_getTableBodyForUserRightsTable($db_rights) . '' . "\n"; if ($GLOBALS['cfgRelation']['menuswork']) { $html_output .= '' . "\n" - . (isset($groupAssignment[$host['User']]) - ? $groupAssignment[$host['User']] + . (isset($group_assignment[$host['User']]) + ? $group_assignment[$host['User']] : '' ) . '' . "\n"; From f16f97830a24c525b59a1b5b18d81b47fb4cb2ff Mon Sep 17 00:00:00 2001 From: "J.M" Date: Fri, 27 Dec 2013 16:46:55 +0100 Subject: [PATCH 3/5] Hide Edit user group link when no groups defined Signed-off-by: J.M --- libraries/server_privileges.lib.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libraries/server_privileges.lib.php b/libraries/server_privileges.lib.php index 395c2438b3..020a3484ef 100644 --- a/libraries/server_privileges.lib.php +++ b/libraries/server_privileges.lib.php @@ -2288,6 +2288,11 @@ function PMA_getExtraDataForAjaxBehavior( } } + $user_group_count = 0; + if ($GLOBALS['cfgRelation']['menuswork']) { + $user_group_count = PMA_getUserGroupCount(); + } + $extra_data = array(); if (strlen($sql_query)) { $extra_data['sql_query'] @@ -2347,7 +2352,7 @@ function PMA_getExtraDataForAjaxBehavior( . PMA_getUserEditLink($username, $hostname) . '' . "\n"; - if (isset($cfgRelation['users']) && isset($cfgRelation['usergroups'])) { + if (isset($cfgRelation['menuswork']) && $user_group_count > 0) { $new_user_string .= '' . PMA_getUserGroupEditLink($username) . '' . "\n"; From 62cf9008b55c01aedea3c49a86dd625c3ffa255d Mon Sep 17 00:00:00 2001 From: "J.M" Date: Fri, 27 Dec 2013 16:47:45 +0100 Subject: [PATCH 4/5] Fix server privileges Action colspan (usergroups) Signed-off-by: J.M --- libraries/server_privileges.lib.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libraries/server_privileges.lib.php b/libraries/server_privileges.lib.php index 020a3484ef..4169bc2906 100644 --- a/libraries/server_privileges.lib.php +++ b/libraries/server_privileges.lib.php @@ -2884,6 +2884,10 @@ function PMA_getUsersOverview($result, $db_rights, $pmaThemeImage, $text_dir) $db_rights[$row['User']][$row['Host']] = $row; } @$GLOBALS['dbi']->freeResult($result); + $user_group_count = 0; + if ($GLOBALS['cfgRelation']['menuswork']) { + $user_group_count = PMA_getUserGroupCount(); + } $html_output = '
' . "\n"; } $html_output .= '' . __('Grant') . '' . "\n" - . '' . __('Action') . '' . "\n" + . '' + . __('Action') . '' . "\n" . '' . "\n" . '' . "\n"; From 02ced8271f03de2e693d69475a864b9b5af0b283 Mon Sep 17 00:00:00 2001 From: "J.M" Date: Fri, 27 Dec 2013 16:48:07 +0100 Subject: [PATCH 5/5] Add ChangeLog entry for bug #4205 --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index a6d6c30432..2c30631ce2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,7 @@ phpMyAdmin - ChangeLog - bug #4200 Missing syntax highlighting - bug #4201 Exports are not compressed - bug #4131 Import: "number of rows to skip" is ambiguous +- bug #4205 Add a user shows additional "edit user group" link 4.1.2.0 (2013-12-23) - bug #4178 Quick edit for BIT type does not work