http://www.mediawiki.org/wiki/Special:Code/MediaWiki/99484
Revision: 99484
Author: catrope
Date: 2011-10-11 15:45:27 +0000 (Tue, 11 Oct 2011)
Log Message:
-----------
list=allusers was throwing fatals when invalid user names occurred in the
database. Address this scenario gracefully
Modified Paths:
--------------
trunk/phase3/includes/api/ApiQueryAllUsers.php
Modified: trunk/phase3/includes/api/ApiQueryAllUsers.php
===================================================================
--- trunk/phase3/includes/api/ApiQueryAllUsers.php 2011-10-11 15:25:31 UTC
(rev 99483)
+++ trunk/phase3/includes/api/ApiQueryAllUsers.php 2011-10-11 15:45:27 UTC
(rev 99484)
@@ -234,11 +234,13 @@
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 @@
$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'],
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs