From: Roan Kattouw Date: Tue, 11 Oct 2011 15:45:27 +0000 (+0000) Subject: list=allusers was throwing fatals when invalid user names occurred in the database... X-Git-Tag: 1.31.0-rc.0~27146 X-Git-Url: http://git.cyclocoop.org/%7B%7B%20url_for%28%27admin_vote_del%27%2C%20idvote=vote.voteid%29%20%7D%7D?a=commitdiff_plain;h=cd9b698d8e48d0b30cd8e6e3c1cee7efe4ae00b2;p=lhc%2Fweb%2Fwiklou.git list=allusers was throwing fatals when invalid user names occurred in the database. Address this scenario gracefully --- diff --git a/includes/api/ApiQueryAllUsers.php b/includes/api/ApiQueryAllUsers.php index 1dd7f19860..c26c2008f1 100644 --- a/includes/api/ApiQueryAllUsers.php +++ b/includes/api/ApiQueryAllUsers.php @@ -234,11 +234,13 @@ class ApiQueryAllUsers extends ApiQueryBase { ApiBase::dieDebug( __METHOD__, 'MediaWiki configuration error: the database contains more user groups than known to User::getAllGroups() function' ); } + + $lastUserObj = User::newFromName( $lastUser ); // Add user's group info if ( $fld_groups ) { - if ( !isset( $lastUserData['groups'] ) ) { - $lastUserData['groups'] = ApiQueryUsers::getAutoGroups( User::newFromName( $lastUser ) ); + if ( !isset( $lastUserData['groups'] ) && $lastUserObj ) { + $lastUserData['groups'] = ApiQueryUsers::getAutoGroups( $lastUserObj ); } if ( !is_null( $row->ug_group2 ) ) { @@ -247,13 +249,13 @@ class ApiQueryAllUsers extends ApiQueryBase { $result->setIndexedTagName( $lastUserData['groups'], 'g' ); } - if ( $fld_implicitgroups && !isset( $lastUserData['implicitgroups'] ) ) { - $lastUserData['implicitgroups'] = ApiQueryUsers::getAutoGroups( User::newFromName( $lastUser ) ); + if ( $fld_implicitgroups && !isset( $lastUserData['implicitgroups'] ) && $lastUserObj ) { + $lastUserData['implicitgroups'] = ApiQueryUsers::getAutoGroups( $lastUserObj ); $result->setIndexedTagName( $lastUserData['implicitgroups'], 'g' ); } if ( $fld_rights ) { - if ( !isset( $lastUserData['rights'] ) ) { - $lastUserData['rights'] = User::getGroupPermissions( User::newFromName( $lastUser )->getAutomaticGroups() ); + if ( !isset( $lastUserData['rights'] ) && $lastUserObj ) { + $lastUserData['rights'] = User::getGroupPermissions( $lastUserObj->getAutomaticGroups() ); } if ( !is_null( $row->ug_group2 ) ) { $lastUserData['rights'] = array_unique( array_merge( $lastUserData['rights'],