From 9b94bd502fbb4f6b114a3474a5426be7ea6c0274 Mon Sep 17 00:00:00 2001 From: Brad Jorsch Date: Wed, 9 Mar 2016 14:30:31 -0500 Subject: [PATCH] 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 --- languages/LanguageConverter.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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' ); -- 2.20.1