Normalise casing of svn:keywords Id
[lhc/web/wiklou.git] / includes / api / ApiQueryAllUsers.php
index 5969322..0055ba4 100644 (file)
@@ -112,6 +112,7 @@ class ApiQueryAllUsers extends ApiQueryBase {
                } else {
                        $sqlLimit = $limit + 1;
                }
+
                if ( $fld_blockinfo ) {
                        $this->addTables( 'ipblocks' );
                        $this->addTables( 'user', 'u2' );
@@ -159,6 +160,9 @@ class ApiQueryAllUsers extends ApiQueryBase {
                                if ( is_array( $lastUserData ) ) {
                                        $fit = $result->addValue( array( 'query', $this->getModuleName() ),
                                                        null, $lastUserData );
+
+                                       $lastUserData = null;
+
                                        if ( !$fit ) {
                                                $this->setContinueEnumParameter( 'from',
                                                                $this->keyToTitle( $lastUserData['name'] ) );
@@ -201,6 +205,10 @@ 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' );
                        }
@@ -210,7 +218,8 @@ class ApiQueryAllUsers extends ApiQueryBase {
                                        $lastUserData['rights'] = User::getGroupPermissions( User::getImplicitGroups() );
                                }
 
-                               $lastUserData['rights'] = array_merge( $lastUserData['rights'], User::getGroupPermissions( array( $row->ug_group2 ) ) );
+                               $lastUserData['rights'] = array_unique( array_merge( $lastUserData['rights'],
+                                       User::getGroupPermissions( array( $row->ug_group2 ) ) ) );
                                $result->setIndexedTagName( $lastUserData['rights'], 'r' );
                        }
                }
@@ -249,6 +258,7 @@ class ApiQueryAllUsers extends ApiQueryBase {
                                ApiBase::PARAM_TYPE => array(
                                        'blockinfo',
                                        'groups',
+                                       'rights',
                                        'editcount',
                                        'registration'
                                )