Do not use $wgUser in Linker/LinkRenderer when sessions are disabled
authorGergő Tisza <gtisza@wikimedia.org>
Wed, 25 May 2016 19:54:47 +0000 (19:54 +0000)
committerGergő Tisza <gtisza@wikimedia.org>
Wed, 25 May 2016 19:58:13 +0000 (19:58 +0000)
When MW_NO_SESSION is set, getting the user options for $wgUser will
result in an error. Check for that in the service definition, and
reuse that check in Linker.

Also removed an unused use clause.

Bug: T136124
Change-Id: Id6448d12e8f4a8a94852980e5eb6ccb202066822

includes/Linker.php
includes/ServiceWiring.php

index 990ad15..0b80c08 100644 (file)
@@ -217,8 +217,8 @@ class Linker {
                if ( $options ) {
                        // Custom options, create new LinkRenderer
                        if ( !isset( $options['stubThreshold'] ) ) {
-                               global $wgUser;
-                               $options['stubThreshold'] = $wgUser->getStubThreshold();
+                               $defaultLinkRenderer = $services->getLinkRenderer();
+                               $options['stubThreshold'] = $defaultLinkRenderer->getStubThreshold();
                        }
                        $linkRenderer = $services->getLinkRendererFactory()
                                ->createFromLegacyOptions( $options );
index 2250935..b076d07 100644 (file)
@@ -38,7 +38,6 @@
  */
 
 use MediaWiki\Interwiki\ClassicInterwikiLookup;
-use MediaWiki\Linker\LinkRenderer;
 use MediaWiki\Linker\LinkRendererFactory;
 use MediaWiki\MediaWikiServices;
 
@@ -170,7 +169,11 @@ return [
        'LinkRenderer' => function( MediaWikiServices $services ) {
                global $wgUser;
 
-               return $services->getLinkRendererFactory()->createForUser( $wgUser );
+               if ( defined( 'MW_NO_SESSION' ) ) {
+                       return $services->getLinkRendererFactory()->create();
+               } else {
+                       return $services->getLinkRendererFactory()->createForUser( $wgUser );
+               }
        },
 
        'GenderCache' => function( MediaWikiServices $services ) {