diff --git a/includes/api/ApiQueryAllUsers.php b/includes/api/ApiQueryAllUsers.php index 5180ff4e191..03634367c3b 100644 --- a/includes/api/ApiQueryAllUsers.php +++ b/includes/api/ApiQueryAllUsers.php @@ -216,24 +216,27 @@ class ApiQueryAllUsers extends ApiQueryBase { } // Add user's group info - if ( $fld_groups && !is_null( $row->ug_group2 ) ) { - if ( !isset( $lastUserData['groups'] ) ) { - $lastUserData['groups'] = ApiQueryUsers::getAutoGroups( User::newFromName( $lastUser ) ); - } - - $lastUserData['groups'][] = $row->ug_group2; - $result->setIndexedTagName( $lastUserData['groups'], 'g' ); - } - if ( $fld_groups ) { if ( !isset( $lastUserData['groups'] ) ) { $lastUserData['groups'] = ApiQueryUsers::getAutoGroups( User::newFromName( $lastUser ) ); } + if ( !is_null( $row->ug_group2 ) ) { $lastUserData['groups'][] = $row->ug_group2; } $result->setIndexedTagName( $lastUserData['groups'], 'g' ); } + + if ( $fld_rights ) { + if ( !isset( $lastUserData['rights'] ) ) { + $lastUserData['rights'] = User::getGroupPermissions( User::getImplicitGroups() ); + } + if ( !is_null( $row->ug_group2 ) ) { + $lastUserData['rights'] = array_unique( array_merge( $lastUserData['rights'], + User::getGroupPermissions( array( $row->ug_group2 ) ) ) ); + } + $result->setIndexedTagName( $lastUserData['rights'], 'r' ); + } } if ( is_array( $lastUserData ) ) {