Add $user param to SpecialPageFactory::getRestrictedPages
authorumherirrender <umherirrender_de.wp@web.de>
Mon, 5 May 2014 19:12:25 +0000 (21:12 +0200)
committerIAlex <codereview@emsenhuber.ch>
Sat, 10 May 2014 08:53:34 +0000 (08:53 +0000)
This avoids the use of $wgUser

Change-Id: I5cc85391710f6e6967d78825fc8a3eda0e15a1a1

includes/specialpage/SpecialPageFactory.php

index 2305f21..dd22769 100644 (file)
@@ -407,17 +407,21 @@ class SpecialPageFactory {
         * Return categorised listable special pages which are available
         * for the current user, but not for everyone
         *
+        * @param User|null $user User object to use or null for $wgUser
         * @return array ( string => Specialpage )
         */
-       public static function getRestrictedPages() {
-               global $wgUser;
+       public static function getRestrictedPages( User $user = null ) {
                $pages = array();
+               if ( $user === null ) {
+                       global $wgUser;
+                       $user = $wgUser;
+               }
                foreach ( self::getList() as $name => $rec ) {
                        $page = self::getPage( $name );
                        if (
                                $page->isListed()
                                && $page->isRestricted()
-                               && $page->userCanExecute( $wgUser )
+                               && $page->userCanExecute( $user )
                        ) {
                                $pages[$name] = $page;
                        }