From: Brad Jorsch Date: Wed, 9 Mar 2016 19:30:31 +0000 (-0500) Subject: Check User::isSafeToLoad() in LanguageConverter X-Git-Tag: 1.31.0-rc.0~7672 X-Git-Url: http://git.cyclocoop.org/%24self?a=commitdiff_plain;h=9b94bd502fbb4f6b114a3474a5426be7ea6c0274;p=lhc%2Fweb%2Fwiklou.git Check User::isSafeToLoad() in LanguageConverter 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 --- diff --git a/languages/LanguageConverter.php b/languages/LanguageConverter.php index 81e78b5914..b31b10ffc7 100644 --- a/languages/LanguageConverter.php +++ b/languages/LanguageConverter.php @@ -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' );