Check User::isSafeToLoad() in LanguageConverter
authorBrad Jorsch <bjorsch@wikimedia.org>
Wed, 9 Mar 2016 19:30:31 +0000 (14:30 -0500)
committerBryanDavis <bdavis@wikimedia.org>
Wed, 9 Mar 2016 21:59:04 +0000 (21:59 +0000)
Ideally LanguageConverter shouldn't be relying on global state at all.
But as a first step let's make it not try to use the global state when
that global state isn't even there.

Bug: T127233
Change-Id: I391cef3ec211d648b078fc509e0139daa58eb875

languages/LanguageConverter.php

index 81e78b5..b31b10f 100644 (file)
@@ -160,7 +160,7 @@ class LanguageConverter {
 
                $req = $this->getURLVariant();
 
-               if ( $wgUser->isLoggedIn() && !$req ) {
+               if ( $wgUser->isSafeToLoad() && $wgUser->isLoggedIn() && !$req ) {
                        $req = $this->getUserVariant();
                } elseif ( !$req ) {
                        $req = $this->getHeaderVariant();
@@ -257,6 +257,9 @@ class LanguageConverter {
                // Get language variant preference from logged in users
                // Don't call this on stub objects because that causes infinite
                // recursion during initialisation
+               if ( !$wgUser->isSafeToLoad() ) {
+                       return false;
+               }
                if ( $wgUser->isLoggedIn() ) {
                        if ( $this->mMainLanguageCode == $wgContLang->getCode() ) {
                                $ret = $wgUser->getOption( 'variant' );