mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/ConfirmEdit
synced 2024-11-24 00:04:15 +00:00
Expose equivalent functionality for passCaptcha
passCaptcha was made protected in I0da671a546700110d789b79a3089460abd9cce3b, but some other extensions used it, provide passCaptchaFromRequest as a replacement. Bug: T135477 Change-Id: I47b2e2fbe3e063cd86e8a2d6bc17ca939472dbe1
This commit is contained in:
parent
f5af433e26
commit
f97212acbf
|
@ -27,13 +27,12 @@ class ReCaptcha extends SimpleCaptcha {
|
||||||
recaptcha_get_html( $wgReCaptchaPublicKey, $this->recaptcha_error, $useHttps );
|
recaptcha_get_html( $wgReCaptchaPublicKey, $this->recaptcha_error, $useHttps );
|
||||||
}
|
}
|
||||||
|
|
||||||
function passCaptchaLimitedFromRequest( WebRequest $request, User $user ) {
|
protected function getCaptchaParamsFromRequest( WebRequest $request ) {
|
||||||
// API is hardwired to return captchaId and captchaWord,
|
// API is hardwired to return captchaId and captchaWord,
|
||||||
// so use that if the standard two are empty
|
// so use that if the standard two are empty
|
||||||
$challenge = $request->getVal( 'recaptcha_challenge_field', $request->getVal( 'captchaId' ) );
|
$challenge = $request->getVal( 'recaptcha_challenge_field', $request->getVal( 'captchaId' ) );
|
||||||
$response = $request->getVal( 'recaptcha_response_field', $request->getVal( 'captchaWord' ) );
|
$response = $request->getVal( 'recaptcha_response_field', $request->getVal( 'captchaWord' ) );
|
||||||
|
return [ $challenge, $response ];
|
||||||
return $this->passCaptchaLimited( $challenge, $response, $user );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -70,11 +70,11 @@ HTML;
|
||||||
wfDebugLog( 'captcha', 'Unable to validate response: ' . $error );
|
wfDebugLog( 'captcha', 'Unable to validate response: ' . $error );
|
||||||
}
|
}
|
||||||
|
|
||||||
public function passCaptchaLimitedFromRequest( WebRequest $request, User $user ) {
|
protected function getCaptchaParamsFromRequest( WebRequest $request ) {
|
||||||
$index = 'not used'; // ReCaptchaNoCaptcha combines captcha ID + solution into a single value
|
$index = 'not used'; // ReCaptchaNoCaptcha combines captcha ID + solution into a single value
|
||||||
// API is hardwired to return captchaWord, so use that if the standard isempty
|
// API is hardwired to return captchaWord, so use that if the standard isempty
|
||||||
$response = $request->getVal( 'g-recaptcha-response', $request->getVal( 'captchaWord' ) );
|
$response = $request->getVal( 'g-recaptcha-response', $request->getVal( 'captchaWord' ) );
|
||||||
return $this->passCaptchaLimited( $index, $response, $user );
|
return [ $index, $response ];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1059,10 +1059,18 @@ class SimpleCaptcha {
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function passCaptchaLimitedFromRequest( WebRequest $request, User $user ) {
|
public function passCaptchaLimitedFromRequest( WebRequest $request, User $user ) {
|
||||||
|
list( $index, $word ) = $this->getCaptchaParamsFromRequest( $request );
|
||||||
|
return $this->passCaptchaLimited( $index, $word, $user );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param WebRequest $request
|
||||||
|
* @return array [ captcha ID, captcha solution ]
|
||||||
|
*/
|
||||||
|
protected function getCaptchaParamsFromRequest( WebRequest $request ) {
|
||||||
$index = $request->getVal( 'wpCaptchaId' );
|
$index = $request->getVal( 'wpCaptchaId' );
|
||||||
$word = $request->getVal( 'wpCaptchaWord' );
|
$word = $request->getVal( 'wpCaptchaWord' );
|
||||||
|
return [ $index, $word ];
|
||||||
return $this->passCaptchaLimited( $index, $word, $user );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1092,6 +1100,18 @@ class SimpleCaptcha {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Given a required captcha run, test form input for correct
|
||||||
|
* input on the open session.
|
||||||
|
* @param WebRequest $request
|
||||||
|
* @param User $user
|
||||||
|
* @return bool if passed, false if failed or new session
|
||||||
|
*/
|
||||||
|
public function passCaptchaFromRequest( WebRequest $request, User $user ) {
|
||||||
|
list( $index, $word ) = $this->getCaptchaParamsFromRequest( $request );
|
||||||
|
return $this->passCaptcha( $index, $word, $user );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given a required captcha run, test form input for correct
|
* Given a required captcha run, test form input for correct
|
||||||
* input on the open session.
|
* input on the open session.
|
||||||
|
|
Loading…
Reference in a new issue