diff --git a/libraries/rte/rte_footer.lib.php b/libraries/rte/rte_footer.lib.php index 415f0164a5..2b3a9917b7 100644 --- a/libraries/rte/rte_footer.lib.php +++ b/libraries/rte/rte_footer.lib.php @@ -25,17 +25,24 @@ function PMA_RTE_getFooterLinks($docu, $priv, $name) /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - $icon = 'b_' . $pmaString->strtolower($name) . '_add.png'; $retval = ""; $retval .= "\n"; $retval .= "
\n"; $retval .= "" . _pgettext('Create new procedure', 'New') . "\n"; $retval .= "
\n"; - $retval .= " strtolower($name) . "s.php"; - $retval .= "?$url_query&add_item=1' onclick='$.datepicker.initialized = false;'>"; - $retval .= PMA_Util::getIcon($icon); - $retval .= PMA_RTE_getWord('add') . "\n"; + if (PMA_Util::currentUserHasPrivilege($priv, $db)) { + $retval .= " strtolower($name) . "s.php"; + $retval .= "?$url_query&add_item=1' "; + $retval .= "onclick='$.datepicker.initialized = false;'>"; + $icon = 'b_' . $pmaString->strtolower($name) . '_add.png'; + $retval .= PMA_Util::getIcon($icon); + $retval .= PMA_RTE_getWord('add') . "\n"; + } else { + $icon = 'bd_' . $pmaString->strtolower($name) . '_add.png'; + $retval .= PMA_Util::getIcon($icon); + $retval .= PMA_RTE_getWord('add'). "\n"; + } $retval .= " " . PMA_Util::showMySQLDocu($docu) . "\n"; $retval .= "
\n"; $retval .= "
\n"; diff --git a/libraries/rte/rte_list.lib.php b/libraries/rte/rte_list.lib.php index 61a110a51c..0df399e18c 100644 --- a/libraries/rte/rte_list.lib.php +++ b/libraries/rte/rte_list.lib.php @@ -147,7 +147,10 @@ function PMA_RTN_getRowForList($routine, $rowclass = '') $retval .= " \n"; $retval .= " \n"; $retval .= " \n"; + // Since editing a procedure involved dropping and recreating, check also for + // CREATE ROUTINE privilege to avoid lost procedures. if ($routine['ROUTINE_DEFINITION'] !== null + && PMA_Util::currentUserHasPrivilege('CREATE ROUTINE', $db) ) { $retval .= '