From 34d2b19a15cade07c3893ef83896e9219dfbda9b Mon Sep 17 00:00:00 2001 From: Rossiani Wijaya Date: Thu, 14 Jan 2010 07:18:06 +0000 Subject: [PATCH] MDL-16919 - Convert uppercase to lowercase for param_username and updating test result in testmoodlelib. --- lib/moodlelib.php | 7 +++---- lib/simpletest/testmoodlelib.php | 8 ++++---- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 0f32a0c5d8..499256284f 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -745,13 +745,12 @@ function clean_param($param, $type) { case PARAM_USERNAME: $param = str_replace(" " , "", $param); - if (empty($CFG->extendedusernamechars)) { + $param = moodle_strtolower($param); // Convert uppercase to lowercase MDL-16919 + if (empty($CFG->extendedusernamechars)) { // regular expression, eliminate all chars EXCEPT: // alphanum, dash (-), underscore (_), at sign (@) and period (.) characters. $param = preg_replace('/[^-\.@_a-z0-9]/', '', $param); - } else { - $param = preg_replace('/[A-Z]/', '', $param); - } + } return $param; default: // throw error, switched parameters in optional_param or another serious problem diff --git a/lib/simpletest/testmoodlelib.php b/lib/simpletest/testmoodlelib.php index 93f1654baf..8ee0c2cb47 100644 --- a/lib/simpletest/testmoodlelib.php +++ b/lib/simpletest/testmoodlelib.php @@ -310,8 +310,8 @@ class moodlelib_test extends UnitTestCase { $this->assertEqual(clean_param('john~doe', PARAM_USERNAME), 'johndoe'); $this->assertEqual(clean_param('john´doe', PARAM_USERNAME), 'johndoe'); $this->assertEqual(clean_param('john#$%&() ', PARAM_USERNAME), 'john'); - $this->assertEqual(clean_param('JOHNdóé ', PARAM_USERNAME), 'd'); - $this->assertEqual(clean_param('john.,:;-_/|\ñÑ[]A_X-,D {} ~!@#$%^&*()_+ ?><[] ščřžžý ?ýáž?žý??šdoe ', PARAM_USERNAME), 'john.-__-@_doe'); + $this->assertEqual(clean_param('JOHNdóé ', PARAM_USERNAME), 'johnd'); + $this->assertEqual(clean_param('john.,:;-_/|\ñÑ[]A_X-,D {} ~!@#$%^&*()_+ ?><[] ščřžžý ?ýáž?žý??šdoe ', PARAM_USERNAME), 'john.-_a_x-d@_doe'); // Test success condition, if extendedusernamechars == ENABLE; @@ -320,8 +320,8 @@ class moodlelib_test extends UnitTestCase { $this->assertEqual(clean_param('john@doe', PARAM_USERNAME), 'john@doe'); $this->assertEqual(clean_param('john# $%&()+_^', PARAM_USERNAME), 'john#$%&()+_^'); $this->assertEqual(clean_param('john~doe', PARAM_USERNAME), 'john~doe'); - $this->assertEqual(clean_param('joHN´doe', PARAM_USERNAME), 'jo´doe'); - $this->assertEqual(clean_param('johnDOE', PARAM_USERNAME), 'john'); + $this->assertEqual(clean_param('joHN´doe', PARAM_USERNAME), 'john´doe'); + $this->assertEqual(clean_param('johnDOE', PARAM_USERNAME), 'johndoe'); $this->assertEqual(clean_param('johndóé ', PARAM_USERNAME), 'johndóé'); $CFG->extendedusernamechars = $currentstatus; -- 2.39.5