Share code for parsing Proc_priv

Signed-off-by: Michal Čihař <michal@cihar.com>
This commit is contained in:
Michal Čihař 2016-06-17 14:17:31 +02:00
parent e25ab25d5f
commit 8ac8ca1a02

View File

@ -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)