preferences: Preserve Status from saveFormData() in submitForm()
authorAlexia E. Smith <washuu@gmail.com>
Tue, 10 Apr 2018 22:20:20 +0000 (17:20 -0500)
committerTimo Tijhof <krinklemail@gmail.com>
Thu, 24 May 2018 19:25:28 +0000 (20:25 +0100)
The old Preference::tryUISubmit() and the new submitForm() would
blissfully return Status::newGood(), even when it isn't good.

Bug: T191933
Change-Id: I4e35c5a71800f88b2063dd0361d83a56f54d58c3

includes/preferences/DefaultPreferencesFactory.php

index d5a706a..df325a7 100644 (file)
@@ -1724,9 +1724,8 @@ class DefaultPreferencesFactory implements PreferencesFactory {
        protected function submitForm( array $formData, PreferencesForm $form ) {
                $res = $this->saveFormData( $formData, $form );
 
-               if ( $res ) {
+               if ( $res === true ) {
                        $context = $form->getContext();
-
                        $urlOptions = [];
 
                        if ( $res === 'eauth' ) {
@@ -1750,7 +1749,7 @@ class DefaultPreferencesFactory implements PreferencesFactory {
                        $context->getOutput()->redirect( $url );
                }
 
-               return Status::newGood();
+               return ( $res === true ? Status::newGood() : $res );
        }
 
        /**