// 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' );
$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
$reason
);
- global $wgOut;
-
$url = $this->getSuccessURL();
$wgOut->redirect( $url );
return;
}
// show some more forms
- if( $this->mTarget ) {
+ if( $this->mTarget !== null ) {
$this->editUserGroupsForm( $this->mTarget );
}
}
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();
$removegroup[] = $group;
}
}
-
+
$this->doSaveUserGroups( $user, $addgroup, $removegroup, $reason );
}
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();
* 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;
$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} == '#' ) {
}
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 );
}
}
}
if( !$user || $user->isAnon() ) {
- return new WikiErrorMsg( 'nosuchusershort', $username );
+ return Status::newFatal( 'nosuchusershort', $username );
}
- return $user;
+ return Status::newGood( $user );
}
function makeGroupNameList( $ids ) {
$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 ) );