jenkins-bot has submitted this change and it was merged.
Change subject: Add UserMerge support
......................................................................
Add UserMerge support
Bug: 67769
Change-Id: I9cab46843db908204742d96c2e73bd7eb767703a
---
M FlaggedRevs.setup.php
M backend/FRUserCounters.php
M backend/FlaggedRevs.hooks.php
3 files changed, 54 insertions(+), 0 deletions(-)
Approvals:
Jackmcbarn: Looks good to me, approved
jenkins-bot: Verified
diff --git a/FlaggedRevs.setup.php b/FlaggedRevs.setup.php
index 1b87cdf..f956892 100644
--- a/FlaggedRevs.setup.php
+++ b/FlaggedRevs.setup.php
@@ -235,6 +235,11 @@
# GNSM category hooks
$wgHooks['GoogleNewsSitemap::Query'][] =
'FlaggedRevsHooks::gnsmQueryModifier';
+ # UserMerge hooks
+ $wgHooks['UserMergeAccountFields'][] =
'FlaggedRevsHooks::onUserMergeAccountFields';
+ $wgHooks['MergeAccountFromTo'][] =
'FlaggedRevsHooks::onMergeAccountFromTo';
+ $wgHooks['DeleteAccount'][] =
'FlaggedRevsHooks::onDeleteAccount';
+
# Duplicate flagged* tables in parserTests.php
$wgHooks['ParserTestTables'][] =
'FlaggedRevsTestHooks::onParserTestTables';
# Integration tests
diff --git a/backend/FRUserCounters.php b/backend/FRUserCounters.php
index 37a63d1..44d2aac 100644
--- a/backend/FRUserCounters.php
+++ b/backend/FRUserCounters.php
@@ -95,6 +95,30 @@
return ( $dbw->affectedRows() > 0 );
}
+ public static function deleteUserParams( User $user ) {
+ $dbw = wfGetDB( DB_MASTER );
+ $dbw->delete(
+ 'flaggedrevs_promote',
+ array( 'frp_user_id' => $user->getId() ),
+ __METHOD__
+ );
+ }
+
+ public static function mergeUserParams( User $oldUser, User $newUser ) {
+ $oldParams = self::getUserParams( $oldUser->getId(), FR_MASTER
);
+ $newParams = self::getUserParams( $newUser->getId(), FR_MASTER
);
+ $newParams['uniqueContentPages'] = array_unique( array_merge(
+ $newParams['uniqueContentPages'],
+ $oldParams['uniqueContentPages']
+ ) );
+ sort( $newParams['uniqueContentPages'] );
+ $newParams['totalContentEdits'] +=
$oldParams['totalContentEdits'];
+ $newParams['editComments'] += $oldParams['editComments'];
+ $newParams['revertedEdits'] += $oldParams['revertedEdits'];
+
+ self::saveUserParams( $newUser->getId(), $newParams );
+ }
+
/**
* Increments a count for a user
* @param int $uid User id
diff --git a/backend/FlaggedRevs.hooks.php b/backend/FlaggedRevs.hooks.php
index 07aa1e8..6033e26 100644
--- a/backend/FlaggedRevs.hooks.php
+++ b/backend/FlaggedRevs.hooks.php
@@ -1037,4 +1037,29 @@
}
return true;
}
+
+ /**
+ * @param array $updateFields
+ * @return bool
+ */
+ public static function onUserMergeAccountFields( array &$updateFields )
{
+ $updateFields[] = array( 'flaggedrevs', 'fr_user' );
+
+ return true;
+ }
+
+ public static function onMergeAccountFromTo( User &$oldUser, User
&$newUser ) {
+ // Don't merge into anonymous users...
+ if ( $newUser->getId() !== 0 ) {
+ FRUserCounters::mergeUserParams( $oldUser, $newUser );
+ }
+
+ return true;
+ }
+
+ public static function onDeleteAccount( User $oldUser ) {
+ FRUserCounters::deleteUserParams( $oldUser );
+
+ return true;
+ }
}
--
To view, visit https://gerrit.wikimedia.org/r/146025
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I9cab46843db908204742d96c2e73bd7eb767703a
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/extensions/FlaggedRevs
Gerrit-Branch: master
Gerrit-Owner: Legoktm <[email protected]>
Gerrit-Reviewer: Aaron Schulz <[email protected]>
Gerrit-Reviewer: Jackmcbarn <[email protected]>
Gerrit-Reviewer: Legoktm <[email protected]>
Gerrit-Reviewer: Reedy <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits