* (bug 21441) meta=userinfo&uiprop=options no longer returns default options for...
authorAlexandre Emsenhuber <ialex@users.mediawiki.org>
Sun, 13 Dec 2009 20:55:09 +0000 (20:55 +0000)
committerAlexandre Emsenhuber <ialex@users.mediawiki.org>
Sun, 13 Dec 2009 20:55:09 +0000 (20:55 +0000)
User::$mOptions is no now only set when calling User::loadOptions() and thus remain null on cache hit and thus the api displays default user settings

RELEASE-NOTES
includes/User.php
includes/api/ApiQueryUserInfo.php

index 6d9e6b8..52d6410 100644 (file)
@@ -747,6 +747,8 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
 * (bug 19523) Add inprop=watched to prop=info
 * (bug 21589) API: Separate summary and initial page text for uploads
 * (bug 21817) list=usercontribs returns empty result for empty ucuser
+* (bug 21441) meta=userinfo&uiprop=options no longer returns default options
+  for logged-in users under certain circumstances
 
 === Languages updated in 1.16 ===
 
index f3e239b..e341e52 100644 (file)
@@ -1957,6 +1957,16 @@ class User {
                }
        }
 
+       /**
+        * Get all user's options
+        *
+        * @return array
+        */
+       public function getOptions() {
+               $this->loadOptions();
+               return $this->mOptions;
+       }
+
        /**
         * Get the user's current setting for a given option, as a boolean value.
         *
index 143ec39..320803b 100644 (file)
@@ -88,7 +88,7 @@ class ApiQueryUserInfo extends ApiQueryBase {
                        $result->setIndexedTagName($vals['changeablegroups']['remove-self'], 'g');
                }
                if (isset($this->prop['options'])) {
-                       $vals['options'] = (is_null($wgUser->mOptions) ? User::getDefaultOptions() : $wgUser->mOptions);
+                       $vals['options'] = $wgUser->getOptions();
                }
                if (isset($this->prop['preferencestoken']) && is_null($this->getMain()->getRequest()->getVal('callback'))) {
                        $vals['preferencestoken'] = $wgUser->editToken();