Add a new searchmenu-new-nocreate message
[lhc/web/wiklou.git] / includes / specials / SpecialUserrights.php
index 6d9def6..1c58548 100644 (file)
@@ -49,7 +49,7 @@ class UserrightsPage extends SpecialPage {
                // any groups, it's a bit silly to give them the user search prompt.
                global $wgUser, $wgRequest, $wgOut;
 
-               if( $par ) {
+               if( $par !== null ) {
                        $this->mTarget = $par;
                } else {
                        $this->mTarget = $wgRequest->getVal( 'user' );
@@ -67,7 +67,7 @@ class UserrightsPage extends SpecialPage {
 
                $available = $this->changeableGroups();
 
-               if ( !$this->mTarget ) {
+               if ( $this->mTarget === null ) {
                        /*
                         * If the user specified no target, and they can only
                         * edit their own groups, automatically set them as the
@@ -113,8 +113,6 @@ class UserrightsPage extends SpecialPage {
                                                $reason
                                        );
 
-                                       global $wgOut;
-
                                        $url = $this->getSuccessURL();
                                        $wgOut->redirect( $url );
                                        return;
@@ -123,7 +121,7 @@ class UserrightsPage extends SpecialPage {
                }
 
                // show some more forms
-               if( $this->mTarget ) {
+               if( $this->mTarget !== null ) {
                        $this->editUserGroupsForm( $this->mTarget );
                }
        }
@@ -143,10 +141,12 @@ class UserrightsPage extends SpecialPage {
        function saveUserGroups( $username, $reason = '' ) {
                global $wgRequest, $wgUser, $wgGroupsAddToSelf, $wgGroupsRemoveFromSelf;
 
-               $user = $this->fetchUser( $username );
-               if( $user instanceof WikiErrorMsg ) {
-                       $wgOut->addWikiMsgArray( $user->getMessageKey(), $user->getMessageArgs() );
+               $status = $this->fetchUser( $username );
+               if( !$status->isOK() ) {
+                       $wgOut->addWikiText( $status->getWikiText() );
                        return;
+               } else {
+                       $user = $status->value;
                }
 
                $allgroups = $this->getAllGroups();
@@ -164,7 +164,7 @@ class UserrightsPage extends SpecialPage {
                                $removegroup[] = $group;
                        }
                }
-               
+
                $this->doSaveUserGroups( $user, $addgroup, $removegroup, $reason );
        }
 
@@ -249,10 +249,12 @@ class UserrightsPage extends SpecialPage {
        function editUserGroupsForm( $username ) {
                global $wgOut;
 
-               $user = $this->fetchUser( $username );
-               if( $user instanceof WikiErrorMsg ) {
-                       $wgOut->addWikiMsgArray( $user->getMessageKey(), $user->getMessageArgs() );
+               $status = $this->fetchUser( $username );
+               if( !$status->isOK() ) {
+                       $wgOut->addWikiText( $status->getWikiText() );
                        return;
+               } else {
+                       $user = $status->value;
                }
 
                $groups = $user->getGroups();
@@ -269,7 +271,7 @@ class UserrightsPage extends SpecialPage {
         * return a user (or proxy) object for manipulating it.
         *
         * Side effects: error output for invalid access
-        * @return mixed User, UserRightsProxy, or WikiErrorMsg
+        * @return Status object
         */
        public function fetchUser( $username ) {
                global $wgUser, $wgUserrightsInterwikiDelimiter;
@@ -280,21 +282,21 @@ class UserrightsPage extends SpecialPage {
                        $database = '';
                } else {
                        list( $name, $database ) = array_map( 'trim', $parts );
-                       
+
                        if( $database == wfWikiID() ) {
                                $database = '';
                        } else {
                                if( !$wgUser->isAllowed( 'userrights-interwiki' ) ) {
-                                       return new WikiErrorMsg( 'userrights-no-interwiki' );
+                                       return Status::newFatal( 'userrights-no-interwiki' );
                                }
                                if( !UserRightsProxy::validDatabase( $database ) ) {
-                                       return new WikiErrorMsg( 'userrights-nodatabase', $database );
+                                       return Status::newFatal( 'userrights-nodatabase', $database );
                                }
                        }
                }
 
-               if( $name == '' ) {
-                       return new WikiErrorMsg( 'nouserspecified' );
+               if( $name === '' ) {
+                       return Status::newFatal( 'nouserspecified' );
                }
 
                if( $name{0} == '#' ) {
@@ -309,13 +311,13 @@ class UserrightsPage extends SpecialPage {
                        }
 
                        if( !$name ) {
-                               return new WikiErrorMsg( 'noname' );
+                               return Status::newFatal( 'noname' );
                        }
                } else {
                        $name = User::getCanonicalName( $name );
-                       if( !$name ) {
+                       if( $name === false ) {
                                // invalid name
-                               return new WikiErrorMsg( 'nosuchusershort', $username );
+                               return Status::newFatal( 'nosuchusershort', $username );
                        }
                }
 
@@ -326,10 +328,10 @@ class UserrightsPage extends SpecialPage {
                }
 
                if( !$user || $user->isAnon() ) {
-                       return new WikiErrorMsg( 'nosuchusershort', $username );
+                       return Status::newFatal( 'nosuchusershort', $username );
                }
 
-               return $user;
+               return Status::newGood( $user );
        }
 
        function makeGroupNameList( $ids ) {
@@ -524,7 +526,7 @@ class UserrightsPage extends SpecialPage {
                                $attr = $checkbox['disabled'] ? array( 'disabled' => 'disabled' ) : array();
 
                                if ( $checkbox['irreversible'] ) {
-                                       $text = htmlspecialchars( wfMsg( 'userrights-irreversible-marker', 
+                                       $text = htmlspecialchars( wfMsg( 'userrights-irreversible-marker',
                                                User::getGroupMember( $group ) ) );
                                } else {
                                        $text = htmlspecialchars( User::getGroupMember( $group ) );