mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/ConfirmEdit
synced 2024-11-27 09:30:06 +00:00
AbuseFilterHooks: Provide feature flags for AF custom actions
Why: - There are issues with the current "showcaptcha" action, and we need to disable it until the problems are fixed What: - Define a feature flag to enable custom actions. For now, nothing is enabled. Bug: T20110 Change-Id: I3484d66298bc9f49dfbe003a0605e2ac1a092e10
This commit is contained in:
parent
5b8f28ffe2
commit
8e4c3f943c
|
@ -96,7 +96,10 @@
|
|||
]
|
||||
},
|
||||
"AbuseFilterHooks": {
|
||||
"class": "MediaWiki\\Extension\\ConfirmEdit\\AbuseFilterHooks"
|
||||
"class": "MediaWiki\\Extension\\ConfirmEdit\\AbuseFilterHooks",
|
||||
"services": [
|
||||
"MainConfig"
|
||||
]
|
||||
}
|
||||
},
|
||||
"Hooks": {
|
||||
|
@ -170,6 +173,10 @@
|
|||
},
|
||||
"CaptchaRegexes": {
|
||||
"value": []
|
||||
},
|
||||
"ConfirmEditEnabledAbuseFilterCustomActions": {
|
||||
"description": "Feature flag to toggle list of available custom actions to enable in AbuseFilter. See AbuseFilterHooks::onAbuseFilterCustomActions",
|
||||
"value": []
|
||||
}
|
||||
},
|
||||
"manifest_version": 2
|
||||
|
|
|
@ -2,17 +2,27 @@
|
|||
|
||||
namespace MediaWiki\Extension\ConfirmEdit;
|
||||
|
||||
use MediaWiki\Config\Config;
|
||||
use MediaWiki\Extension\AbuseFilter\Consequences\Parameters;
|
||||
use MediaWiki\Extension\AbuseFilter\Hooks\AbuseFilterCustomActionsHook;
|
||||
use MediaWiki\Extension\ConfirmEdit\AbuseFilter\CaptchaConsequence;
|
||||
|
||||
class AbuseFilterHooks implements AbuseFilterCustomActionsHook {
|
||||
|
||||
private Config $config;
|
||||
|
||||
public function __construct( Config $config ) {
|
||||
$this->config = $config;
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public function onAbuseFilterCustomActions( array &$actions ): void {
|
||||
$actions['showcaptcha'] = static function ( Parameters $params ): CaptchaConsequence {
|
||||
return new CaptchaConsequence( $params );
|
||||
};
|
||||
$enabledActions = $this->config->get( 'ConfirmEditEnabledAbuseFilterCustomActions' );
|
||||
if ( in_array( 'showcaptcha', $enabledActions ) ) {
|
||||
$actions['showcaptcha'] = static function ( Parameters $params ): CaptchaConsequence {
|
||||
return new CaptchaConsequence( $params );
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace MediaWiki\Extension\ConfirmEdit\Test\Unit\AbuseFilter;
|
||||
|
||||
use MediaWiki\Config\HashConfig;
|
||||
use MediaWiki\Extension\ConfirmEdit\AbuseFilterHooks;
|
||||
use MediaWikiUnitTestCase;
|
||||
|
||||
|
@ -11,7 +12,8 @@ use MediaWikiUnitTestCase;
|
|||
class AbuseFilterHooksTest extends MediaWikiUnitTestCase {
|
||||
|
||||
public function testOnAbuseFilterCustomActions() {
|
||||
$abuseFilterHooks = new AbuseFilterHooks();
|
||||
$config = new HashConfig( [ 'ConfirmEditEnabledAbuseFilterCustomActions' => [ 'showcaptcha' ] ] );
|
||||
$abuseFilterHooks = new AbuseFilterHooks( $config );
|
||||
$actions = [];
|
||||
$abuseFilterHooks->onAbuseFilterCustomActions( $actions );
|
||||
$this->assertArrayHasKey( 'showcaptcha', $actions );
|
||||
|
|
Loading…
Reference in a new issue