mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/ConfirmEdit
synced 2024-12-18 02:41:01 +00:00
fbf6c1c7ea
This is a rudimentary implementation of Cloudflare's Turnstile captcha alternative. Since it is fairly similar to ReCaptchaNoCaptcha, there is some duplicate code used here. I opted not to use the migration path that CF has for reCAPTCHA v2 and build this as a separate implementation. After T324925, it should be easy to refactor this code. Users should set $wgTurnstileSiteKey and $wgTurnstileSecretKey as appropriate, based on details from the Cloudflare dashboard. Bug: T319068 Change-Id: I0d5a74655619975f0bf61b5b672159afe5f4fb00
39 lines
887 B
PHP
39 lines
887 B
PHP
<?php
|
|
|
|
namespace MediaWiki\Extension\ConfirmEdit\Turnstile;
|
|
|
|
use MediaWiki\Auth\AuthenticationRequest;
|
|
use MediaWiki\Extension\ConfirmEdit\Auth\CaptchaAuthenticationRequest;
|
|
|
|
/**
|
|
* Authentication request for Turnstile. Functions almost identically to ReCaptchaNoCaptchaAuthenticationRequest.
|
|
*/
|
|
class TurnstileAuthenticationRequest extends CaptchaAuthenticationRequest {
|
|
public function __construct() {
|
|
parent::__construct( '', [] );
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function loadFromSubmission( array $data ) {
|
|
// unhack the hack in parent
|
|
return AuthenticationRequest::loadFromSubmission( $data );
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function getFieldInfo() {
|
|
$fieldInfo = parent::getFieldInfo();
|
|
|
|
return [
|
|
'captchaWord' => [
|
|
'type' => 'string',
|
|
'label' => $fieldInfo['captchaInfo']['label'],
|
|
'help' => wfMessage( 'turnstile-help' ),
|
|
],
|
|
];
|
|
}
|
|
}
|