Legoktm has uploaded a new change for review.
https://gerrit.wikimedia.org/r/247301
Change subject: AbuseFilter: Get user from context instead of at initialization
......................................................................
AbuseFilter: Get user from context instead of at initialization
A $wgExtensionFunction is way too early to read $wgUser, and causes
issues with non-web requests where the User may be initialized later on
(e.g. MassMessage). We have a ContextSource on hand, so use that
instead.
Bug: T115887
Change-Id: Ib17a5378156caae4571ce5dab03c8a30d1d62bbc
---
M Hooks.php
M includes/SpamFilter/AbuseFilter.php
M tests/phpunit/SpamFilter/AbuseFilterTest.php
3 files changed, 6 insertions(+), 13 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Flow
refs/changes/01/247301/1
diff --git a/Hooks.php b/Hooks.php
index f896714..c3249b1 100644
--- a/Hooks.php
+++ b/Hooks.php
@@ -103,13 +103,12 @@
*/
public static function getAbuseFilter() {
if ( self::$abuseFilter === null ) {
- global $wgUser,
- $wgFlowAbuseFilterGroup,
+ global $wgFlowAbuseFilterGroup,
$wgFlowAbuseFilterEmergencyDisableThreshold,
$wgFlowAbuseFilterEmergencyDisableCount,
$wgFlowAbuseFilterEmergencyDisableAge;
- self::$abuseFilter = new AbuseFilter( $wgUser,
$wgFlowAbuseFilterGroup );
+ self::$abuseFilter = new AbuseFilter(
$wgFlowAbuseFilterGroup );
self::$abuseFilter->setup( array(
'threshold' =>
$wgFlowAbuseFilterEmergencyDisableThreshold,
'count' =>
$wgFlowAbuseFilterEmergencyDisableCount,
diff --git a/includes/SpamFilter/AbuseFilter.php
b/includes/SpamFilter/AbuseFilter.php
index 726a4aa..58239b8 100644
--- a/includes/SpamFilter/AbuseFilter.php
+++ b/includes/SpamFilter/AbuseFilter.php
@@ -10,21 +10,14 @@
class AbuseFilter implements SpamFilter {
/**
- * @var User
- */
- protected $user;
-
- /**
* @var string
*/
protected $group;
/**
- * @param User $user The user submitting content
* @param string $group The abuse filter group to use
*/
- public function __construct( User $user, $group ) {
- $this->user = $user;
+ public function __construct( $group ) {
$this->group = $group;
}
@@ -71,7 +64,7 @@
*/
public function validate( IContextSource $context, AbstractRevision
$newRevision, AbstractRevision $oldRevision = null, Title $title ) {
$vars = \AbuseFilter::getEditVars( $title );
- $vars->addHolders( \AbuseFilter::generateUserVars( $this->user
), \AbuseFilter::generateTitleVars( $title , 'ARTICLE' ) );
+ $vars->addHolders( \AbuseFilter::generateUserVars(
$context->getUser() ), \AbuseFilter::generateTitleVars( $title , 'ARTICLE' ) );
$vars->setVar( 'ACTION', $newRevision->getChangeType() );
/*
diff --git a/tests/phpunit/SpamFilter/AbuseFilterTest.php
b/tests/phpunit/SpamFilter/AbuseFilterTest.php
index c6a6a9e..2de73f7 100644
--- a/tests/phpunit/SpamFilter/AbuseFilterTest.php
+++ b/tests/phpunit/SpamFilter/AbuseFilterTest.php
@@ -70,8 +70,9 @@
\RequestContext::getMain()->setTitle( Title::newMainPage() );
$user = User::newFromName( 'UTSysop' );
+ \RequestContext::getMain()->setUser( $user );
- $this->spamFilter = new AbuseFilter( $user,
$wgFlowAbuseFilterGroup );
+ $this->spamFilter = new AbuseFilter( $wgFlowAbuseFilterGroup );
if ( !$this->spamFilter->enabled() ) {
$this->markTestSkipped( 'AbuseFilter not enabled' );
}
--
To view, visit https://gerrit.wikimedia.org/r/247301
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib17a5378156caae4571ce5dab03c8a30d1d62bbc
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Flow
Gerrit-Branch: master
Gerrit-Owner: Legoktm <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits