mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 00:12:56 +02:00
MDL-35238 Be more verbose if the tilde character is used in TYPE_PATH script options
The tilde character is not generally supported in Moodle. Previously it was just removed silently and it was difficult to realize what was going on.
This commit is contained in:
parent
ec8e1cbce6
commit
8ffa8d7e48
@ -258,6 +258,9 @@ class input_manager extends singleton_pattern {
|
||||
return (int)$raw;
|
||||
|
||||
case input_manager::TYPE_PATH:
|
||||
if (strpos($raw, '~') !== false) {
|
||||
throw new invalid_option_exception('Using the tilde (~) character in paths is not supported');
|
||||
}
|
||||
$raw = str_replace('\\', '/', $raw);
|
||||
$raw = preg_replace('~[[:cntrl:]]|[&<>"`\|\':]~u', '', $raw);
|
||||
$raw = preg_replace('~\.\.+~', '', $raw);
|
||||
|
@ -174,6 +174,15 @@ class mdeploytest extends PHPUnit_Framework_TestCase {
|
||||
$input->cast_value($invalid, input_manager::TYPE_MD5); // must throw exception
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException invalid_option_exception
|
||||
*/
|
||||
public function test_cast_tilde_in_path() {
|
||||
$input = testable_input_manager::instance();
|
||||
$invalid = '~/public_html/moodle_dev';
|
||||
$input->cast_value($invalid, input_manager::TYPE_PATH); // must throw exception
|
||||
}
|
||||
|
||||
public function test_has_option() {
|
||||
$provider = input_fake_provider::instance();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user