Explicitly support user id in action=userrights
authorKunal Mehta <legoktm@gmail.com>
Sat, 14 Dec 2013 20:47:06 +0000 (12:47 -0800)
committerAnomie <bjorsch@wikimedia.org>
Mon, 16 Dec 2013 19:25:24 +0000 (19:25 +0000)
Bug: 32493
Change-Id: I2279cde5d0077f8a0612e707a2410693c5e53a12

includes/api/ApiUserrights.php

index be98a21..2bd7321 100644 (file)
@@ -61,10 +61,13 @@ class ApiUserrights extends ApiBase {
                }
 
                $params = $this->extractRequestParams();
+               $this->requireOnlyOneParameter( $params, 'user', 'userid' );
+
+               $user = isset( $params['user'] ) ? $params['user'] : '#' . $params['userid'];
 
                $form = new UserrightsPage;
                $form->setContext( $this->getContext() );
-               $status = $form->fetchUser( $params['user'] );
+               $status = $form->fetchUser( $user );
                if ( !$status->isOK() ) {
                        $this->dieStatus( $status );
                }
@@ -86,7 +89,9 @@ class ApiUserrights extends ApiBase {
                return array(
                        'user' => array(
                                ApiBase::PARAM_TYPE => 'string',
-                               ApiBase::PARAM_REQUIRED => true
+                       ),
+                       'userid' => array(
+                               ApiBase::PARAM_TYPE => 'integer',
                        ),
                        'add' => array(
                                ApiBase::PARAM_TYPE => User::getAllGroups(),
@@ -109,6 +114,7 @@ class ApiUserrights extends ApiBase {
        public function getParamDescription() {
                return array(
                        'user' => 'User name',
+                       'userid' => 'User id',
                        'add' => 'Add the user to these groups',
                        'remove' => 'Remove the user from these groups',
                        'token' => 'A userrights token previously retrieved through list=users',
@@ -130,7 +136,8 @@ class ApiUserrights extends ApiBase {
 
        public function getExamples() {
                return array(
-                       'api.php?action=userrights&user=FooBot&add=bot&remove=sysop|bureaucrat&token=123ABC'
+                       'api.php?action=userrights&user=FooBot&add=bot&remove=sysop|bureaucrat&token=123ABC',
+                       'api.php?action=userrights&userid=123&add=bot&remove=sysop|bureaucrat&token=123ABC'
                );
        }