- if ($fld_groups && !is_null($row->ug_group2)) {
- $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 ) ) {
+ $fit = $result->addValue( array( 'query', $this->getModuleName() ),
+ null, $lastUserData );
+ if ( !$fit ) {
+ $this->setContinueEnumParameter( 'from',
+ $this->keyToTitle( $lastUserData['name'] ) );