Page MenuHomePhabricator

Tab character in course title causes an error
Closed, ResolvedPublic

Description

If you try to create a course that includes a tab in the title (which does not get rendered), you will be able to reach the 'create course' interface, but upon trying to save the page, you get an error, like this:

[3ae24f00] /w/index.php?title=Education_Program:NoDelete/Errorwat_(now)&action=edit Exception from line 68 of /vagrant/mediawiki/extensions/EducationProgram/includes/rows/PageObject.php: The title for a PageObject needs to be valid when saving.

Backtrace:

#0 /vagrant/mediawiki/extensions/EducationProgram/includes/rows/Course.php(313): EducationProgram\PageObject->save(NULL)
#1 /vagrant/mediawiki/extensions/EducationProgram/includes/rows/RevisionedObject.php(263): EducationProgram\Course->save()
#2 /vagrant/mediawiki/extensions/EducationProgram/includes/actions/EditAction.php(466): EducationProgram\RevisionedObject->revisionedSave(EducationProgram\RevisionAction)
#3 [internal function]: EducationProgram\EditAction->handleSubmission(array, EducationProgram\FailForm)
#4 /vagrant/mediawiki/includes/htmlform/HTMLForm.php(443): call_user_func(array, array, EducationProgram\FailForm)
#5 /vagrant/mediawiki/includes/htmlform/HTMLForm.php(385): HTMLForm->trySubmit()
#6 /vagrant/mediawiki/includes/htmlform/HTMLForm.php(400): HTMLForm->tryAuthorizedSubmit()
#7 /vagrant/mediawiki/extensions/EducationProgram/includes/actions/EditAction.php(188): HTMLForm->show()
#8 /vagrant/mediawiki/extensions/EducationProgram/includes/actions/EditAction.php(64): EducationProgram\EditAction->showForm()
#9 /vagrant/mediawiki/extensions/EducationProgram/includes/actions/EditCourseAction.php(94): EducationProgram\EditAction->onView()
#10 /vagrant/mediawiki/includes/Action.php(567): EducationProgram\EditCourseAction->onView()
#11 /vagrant/mediawiki/includes/Wiki.php(428): FormlessAction->show()
#12 /vagrant/mediawiki/includes/Wiki.php(292): MediaWiki->performAction(EducationProgram\CoursePage, Title)
#13 /vagrant/mediawiki/includes/Wiki.php(586): MediaWiki->performRequest()
#14 /vagrant/mediawiki/includes/Wiki.php(447): MediaWiki->main()
#15 /vagrant/mediawiki/index.php(49): MediaWiki->run()
#16 {main}


Version: unspecified
Severity: minor

Details

Reference
bz60807

Event Timeline

bzimport raised the priority of this task from to Low.Nov 22 2014, 2:51 AM
bzimport set Reference to bz60807.
bzimport added a subscriber: Unknown Object (MLST).

During course page creation, the course title gets pulled in from the user's input in the ep.addcourse.js module. The title gets normalized for the url of the "creating course" page, but the raw form of the input is loaded for page title and course name. Thus, either including inadvertant characters that get stripped out of the url (like a tab), or inserting any illegal title characters in the course adding/editing interface will result in this error upon save, the system tries to save an illegal value for the title.

Changing the title from the editing/adding interface will be disabled, so we'll just need to make sure the title from ep.addcourse.js either gets sanitized or gets fully validated as a legal title: https://www.mediawiki.org/wiki/Help:Bad_title

It is no longer possible (since 1.23wmf15) to change the title of a course, and the initial value gets properly stripped of illegal characters.