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

Reply via email to