jenkins-bot has submitted this change and it was merged.

Change subject: Update API parameter injection
......................................................................


Update API parameter injection

The ReCaptcha module was not injecting its parameters at all, so they
were not showing up in the auto-generated help. This is now fixed.

Also, the API recently added a new parameter to the APIGetAllowedParams hook
to differentiate between fetching the allowed parameter list for help
output and fetching it for processing within the module. ConfirmEdit
only needs to inject the parameters for the former, so it should check
this parameter if available.

Change-Id: Ia8c9a8b882ee3480b71bfb3f2345475506549819
---
M Captcha.php
M ConfirmEditHooks.php
M ReCaptcha.class.php
3 files changed, 31 insertions(+), 13 deletions(-)

Approvals:
  Aaron Schulz: Verified; Looks good to me, approved
  jenkins-bot: Verified



diff --git a/Captcha.php b/Captcha.php
index 0f78d36..2d6afbf 100644
--- a/Captcha.php
+++ b/Captcha.php
@@ -577,15 +577,23 @@
 
        /**
         * @param $module ApiBase
-        * @param $params array
         * @return bool
         */
-       public function APIGetAllowedParams( &$module, &$params ) {
-               if ( !$module instanceof ApiEditPage ) {
-                       return true;
+       protected function isAPICaptchaModule( $module ) {
+               return $module instanceof ApiEditPage;
+       }
+
+       /**
+        * @param $module ApiBase
+        * @param $params array
+        * @param $flags int
+        * @return bool
+        */
+       public function APIGetAllowedParams( &$module, &$params, $flags ) {
+               if ( $flags && $this->isAPICaptchaModule( $module ) ) {
+                       $params['captchaword'] = null;
+                       $params['captchaid'] = null;
                }
-               $params['captchaword'] = null;
-               $params['captchaid'] = null;
 
                return true;
        }
@@ -596,11 +604,10 @@
         * @return bool
         */
        public function APIGetParamDescription( &$module, &$desc ) {
-               if ( !$module instanceof ApiEditPage ) {
-                       return true;
+               if ( $this->isAPICaptchaModule( $module ) ) {
+                       $desc['captchaid'] = 'CAPTCHA ID from previous request';
+                       $desc['captchaword'] = 'Answer to the CAPTCHA';
                }
-               $desc['captchaid'] = 'CAPTCHA ID from previous request';
-               $desc['captchaword'] = 'Answer to the CAPTCHA';
 
                return true;
        }
diff --git a/ConfirmEditHooks.php b/ConfirmEditHooks.php
index 66e5199..bc85138 100644
--- a/ConfirmEditHooks.php
+++ b/ConfirmEditHooks.php
@@ -55,8 +55,9 @@
                return self::getInstance()->confirmEmailUser( $from, $to, 
$subject, $text, $error );
        }
 
-       public static function APIGetAllowedParams( &$module, &$params ) {
-               return self::getInstance()->APIGetAllowedParams( $module, 
$params );
+       // Default $flags to 1 for backwards-compatible behavior
+       public static function APIGetAllowedParams( &$module, &$params, $flags 
= 1 ) {
+               return self::getInstance()->APIGetAllowedParams( $module, 
$params, $flags );
        }
 
        public static function APIGetParamDescription( &$module, &$desc ) {
diff --git a/ReCaptcha.class.php b/ReCaptcha.class.php
index 59b31f4..cd274a9 100644
--- a/ReCaptcha.class.php
+++ b/ReCaptcha.class.php
@@ -81,11 +81,21 @@
                return wfMessage( $name, $text )->isDisabled() ? wfMessage( 
'recaptcha-edit' )->text() : $text;
        }
 
-       public function APIGetAllowedParams( &$module, &$params ) {
+       public function APIGetAllowedParams( &$module, &$params, $flags ) {
+               if ( $flags && $this->isAPICaptchaModule( $module ) ) {
+                       $params['recaptcha_challenge_field'] = null;
+                       $params['recaptcha_response_field'] = null;
+               }
+
                return true;
        }
 
        public function APIGetParamDescription( &$module, &$desc ) {
+               if ( $this->isAPICaptchaModule( $module ) ) {
+                       $desc['recaptcha_challenge_field'] = 'Field from the 
ReCaptcha widget';
+                       $desc['recaptcha_response_field'] = 'Field from the 
ReCaptcha widget';
+               }
+
                return true;
        }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/54138
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ia8c9a8b882ee3480b71bfb3f2345475506549819
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ConfirmEdit
Gerrit-Branch: master
Gerrit-Owner: Anomie <bjor...@wikimedia.org>
Gerrit-Reviewer: Aaron Schulz <asch...@wikimedia.org>
Gerrit-Reviewer: Brion VIBBER <br...@wikimedia.org>
Gerrit-Reviewer: Yurik <yu...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to