(bug 17809) Add number of users in user groups to meta=siteinfo
authorBryan Tong Minh <btongminh@users.mediawiki.org>
Sun, 12 Jul 2009 12:10:27 +0000 (12:10 +0000)
committerBryan Tong Minh <btongminh@users.mediawiki.org>
Sun, 12 Jul 2009 12:10:27 +0000 (12:10 +0000)
RELEASE-NOTES
includes/api/ApiQuerySiteinfo.php

index 18805dd..5ec592f 100644 (file)
@@ -285,6 +285,7 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
 * (bug 19423) The initial file description page used caption in user lang
   rather than UI lang
 * Added snippet field to list=search output
+* (bug 17809) Add number of users in user groups to meta=siteinfo
 
 === Languages updated in 1.16 ===
 
index c4c86b7..8b84b70 100644 (file)
@@ -72,7 +72,7 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                                        $fit = $this->appendStatistics( $p );
                                        break;
                                case 'usergroups':
-                                       $fit = $this->appendUserGroups( $p );
+                                       $fit = $this->appendUserGroups( $p, $params['numberingroup'] );
                                        break;
                                case 'extensions':
                                        $fit = $this->appendExtensions( $p );
@@ -316,11 +316,17 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                return $this->getResult()->addValue( 'query', $property, $data );
        }
 
-       protected function appendUserGroups( $property ) {
+       protected function appendUserGroups( $property, $numberInGroup ) {
                global $wgGroupPermissions;
                $data = array();
                foreach( $wgGroupPermissions as $group => $permissions ) {
-                       $arr = array( 'name' => $group, 'rights' => array_keys( $permissions, true ) );
+                       $arr = array( 
+                               'name' => $group, 
+                               'rights' => array_keys( $permissions, true ),
+                       );
+                       if ( $numberInGroup )
+                               $arr['number'] = SiteStats::numberInGroup( $group );
+                       
                        $this->getResult()->setIndexedTagName( $arr['rights'], 'permission' );
                        $data[] = $arr;
                }
@@ -431,6 +437,7 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                                )
                        ),
                        'showalldb' => false,
+                       'numberingroup' => false,
                );
        }
 
@@ -454,6 +461,7 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                        ),
                        'filteriw' =>  'Return only local or only nonlocal entries of the interwiki map',
                        'showalldb' => 'List all database servers, not just the one lagging the most',
+                       'numberingroup' => 'Lists the number of users in user groups',
                );
        }