Merge remote-tracking branch 'origin/QA_4_6' into QA_4_6

This commit is contained in:
Weblate 2016-10-19 11:53:40 +02:00
commit 48cd299dca
3 changed files with 24 additions and 7 deletions

View File

@ -1245,17 +1245,22 @@ class Table
* checks if given name is a valid table name,
* currently if not empty, trailing spaces, '.', '/' and '\'
*
* @param string $table_name name to check
* @param string $table_name name to check
* @param boolean $is_backquoted whether this name is used inside backquotes or not
*
* @todo add check for valid chars in filename on current system/os
* @see https://dev.mysql.com/doc/refman/5.0/en/legal-names.html
*
* @return boolean whether the string is valid or not
*/
static function isValidName($table_name)
static function isValidName($table_name, $is_backquoted = false)
{
if ($table_name !== trim($table_name)) {
// trailing spaces
if ($table_name !== rtrim($table_name)) {
// trailing spaces not allowed even in backquotes
return false;
}
if (! $is_backquoted && $table_name !== trim($table_name)) {
// spaces at the start or in between
return false;
}
@ -1310,7 +1315,10 @@ class Table
return true;
}
if (! Table::isValidName($new_name)) {
// Allow whitespaces (not trailing) in $new_name,
// since we are using $backquoted in getting the fullName of table
// below to be used in the query
if (! Table::isValidName($new_name, true)) {
$this->errors[] = __('Invalid table name:') . ' '
. $new_table->getFullName();
return false;

View File

@ -226,7 +226,12 @@ if (isset($result) && empty($message_to_show)) {
}
exit;
}
} else {
$_message = $result
? PMA\libraries\Message::success($_message)
: PMA\libraries\Message::error($_message);
}
if (! empty($warning_messages)) {
$_message = new PMA\libraries\Message;
$_message->addMessages($warning_messages);

View File

@ -385,11 +385,11 @@ class TableTest extends PMATestCase
*
* @dataProvider dataValidateName
*/
public function testValidateName($name, $result)
public function testValidateName($name, $result, $is_backquoted=false)
{
$this->assertEquals(
$result,
Table::isValidName($name)
Table::isValidName($name, $is_backquoted)
);
}
@ -405,6 +405,10 @@ class TableTest extends PMATestCase
array('te/st', false),
array('te.st', false),
array('te\\st', false),
array('te st', true),
array(' te st', true, true),
array('test ', false),
array('test ', false, true),
);
}