From 8ac8ca1a028342999369ce412e835d0d677480a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20=C4=8Ciha=C5=99?= Date: Fri, 17 Jun 2016 14:17:31 +0200 Subject: [PATCH] Share code for parsing Proc_priv MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michal Čihař --- libraries/server_privileges.lib.php | 50 +++++++++++++++-------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/libraries/server_privileges.lib.php b/libraries/server_privileges.lib.php index 145eddb8f4..066baf0ea3 100644 --- a/libraries/server_privileges.lib.php +++ b/libraries/server_privileges.lib.php @@ -988,18 +988,7 @@ function PMA_getHtmlForRoutineSpecificPrivilges( . " AND `Routine_name` LIKE '" . Util::sqlAddSlashes($routine) . "';"; $res = $GLOBALS['dbi']->fetchValue($sql); - $privs = array( - 'Alter_routine_priv' => 'N', - 'Execute_priv' => 'N', - 'Grant_priv' => 'N', - ); - foreach (explode(',', $res) as $priv) { - if ($priv == 'Alter Routine') { - $privs['Alter_routine_priv'] = 'Y'; - } else { - $privs[$priv . '_priv'] = 'Y'; - } - } + $privs = PMA_parseProcPriv($res); $routineArray = array(PMA_getTriggerPrivilegeTable()); $privTableNames = array(__('Routine')); @@ -3332,6 +3321,30 @@ function PMA_getUserSpecificRights($username, $hostname, $type, $dbname = '') return $db_rights; } +/** + * Parses Proc_priv data + * + * @param string $prins Proc_priv + * + * @return array + */ +function PMA_parseProcPriv($privs) +{ + $result = array( + 'Alter_routine_priv' => 'N', + 'Execute_priv' => 'N', + 'Grant_priv' => 'N', + ); + foreach (explode(',', $privs) as $priv) { + if ($priv == 'Alter Routine') { + $result['Alter_routine_priv'] = 'Y'; + } else { + $result[$priv . '_priv'] = 'Y'; + } + } + return $result; +} + /** * Get a HTML table for display user's tabel specific or database specific rights * @@ -3409,18 +3422,7 @@ function PMA_getHtmlForAllTableSpecificRights( explode(',', $row['Proc_priv']) ); - $privs = array( - 'Alter_routine_priv' => 'N', - 'Execute_priv' => 'N', - 'Grant_priv' => 'N', - ); - foreach (explode(',', $row['Proc_priv']) as $priv) { - if ($priv == 'Alter Routine') { - $privs['Alter_routine_priv'] = 'Y'; - } else { - $privs[$priv . '_priv'] = 'Y'; - } - } + $privs = PMA_parseProcPriv($row['Proc_priv']); $onePrivilege['privileges'] = join( ',', PMA_extractPrivInfo($privs, true)