Merge "Add User::isSafeToLoad() and ParserOptions::newFromAnon()"

This commit is contained in:
jenkins-bot 2016-02-04 06:08:07 +00:00 committed by Gerrit Code Review
commit 733bafe46f
3 changed files with 22 additions and 4 deletions

View file

@ -168,14 +168,14 @@ class MessageCache {
* @return ParserOptions
*/
function getParserOptions() {
global $wgFullyInitialised, $wgContLang;
global $wgUser;
if ( !$this->mParserOptions ) {
if ( !$wgFullyInitialised ) {
if ( !$wgUser->isSafeToLoad() ) {
// $wgUser isn't unstubbable yet, so don't try to get a
// ParserOptions for it. And don't cache this ParserOptions
// either.
$po = new ParserOptions( new User, $wgContLang );
$po = ParserOptions::newFromAnon();
$po->setEditSection( false );
return $po;
}

View file

@ -599,6 +599,15 @@ class ParserOptions {
$this->initialiseFromUser( $user, $lang );
}
/**
* Get a ParserOptions object for an anonymous user
* @return ParserOptions
*/
public static function newFromAnon() {
global $wgContLang;
return new ParserOptions( new User, $wgContLang );
}
/**
* Get a ParserOptions object from a given user.
* Language will be taken from $wgLang.

View file

@ -309,6 +309,15 @@ class User implements IDBAccessObject {
return $this->getName();
}
/**
* Test if it's safe to load this User object
* @return bool
*/
public function isSafeToLoad() {
global $wgFullyInitialised;
return $wgFullyInitialised || $this->mLoadedItems === true || $this->mFrom !== 'session';
}
/**
* Load the user table data for this object from the source given by mFrom.
*
@ -327,7 +336,7 @@ class User implements IDBAccessObject {
$this->queryFlagsUsed = $flags;
// If this is called too early, things are likely to break.
if ( $this->mFrom === 'session' && empty( $wgFullyInitialised ) ) {
if ( !$wgFullyInitialised && $this->mFrom === 'session' ) {
\MediaWiki\Logger\LoggerFactory::getInstance( 'session' )
->warning( 'User::loadFromSession called before the end of Setup.php', array(
'exception' => new Exception( 'User::loadFromSession called before the end of Setup.php' ),