Merge "Use $wgUser in ResourceLoaderUserGroupsModule when possible."
authorCatrope <roan.kattouw@gmail.com>
Thu, 12 Apr 2012 20:33:32 +0000 (20:33 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 12 Apr 2012 20:33:33 +0000 (20:33 +0000)
includes/resourceloader/ResourceLoaderUserGroupsModule.php

index 733dfa0..b5d96ca 100644 (file)
@@ -31,21 +31,32 @@ class ResourceLoaderUserGroupsModule extends ResourceLoaderWikiModule {
         * @return array
         */
        protected function getPages( ResourceLoaderContext $context ) {
-               if ( $context->getUser() ) {
-                       $user = User::newFromName( $context->getUser() );
-                       if ( $user instanceof User ) {
-                               $pages = array();
-                               foreach( $user->getEffectiveGroups() as $group ) {
-                                       if ( in_array( $group, array( '*', 'user' ) ) ) {
-                                               continue;
-                                       }
-                                       $pages["MediaWiki:Group-$group.js"] = array( 'type' => 'script' );
-                                       $pages["MediaWiki:Group-$group.css"] = array( 'type' => 'style' );
-                               }
-                               return $pages;
+               global $wgUser;
+
+               $userName = $context->getUser();
+               if ( !$userName ) {
+                       return array();
+               }
+
+               // Use $wgUser is possible; allows to skip a lot of code
+               if ( is_object( $wgUser ) && $wgUser->getName() == $userName ) {
+                       $user = $wgUser;
+               } else {
+                       $user = User::newFromName( $userName );
+                       if ( !$user instanceof User ) {
+                               return array();
+                       }
+               }
+
+               $pages = array();
+               foreach( $user->getEffectiveGroups() as $group ) {
+                       if ( in_array( $group, array( '*', 'user' ) ) ) {
+                               continue;
                        }
+                       $pages["MediaWiki:Group-$group.js"] = array( 'type' => 'script' );
+                       $pages["MediaWiki:Group-$group.css"] = array( 'type' => 'style' );
                }
-               return array();
+               return $pages;
        }
 
        /* Methods */