Sbisson has uploaded a new change for review.
https://gerrit.wikimedia.org/r/228347
Change subject: Suppress notifications during talk page conversion to Flow
......................................................................
Suppress notifications during talk page conversion to Flow
- Prevent Echo events from 'Talk page manager' user
from being saved.
- Prevent 'You have new messages!' notifications when
caused by 'Talk page manager' user.
Bug: T78576
Change-Id: I4ed66baa44c382aea3944a8cfd16fcb1b1d6edf0
---
M Flow.php
M Hooks.php
2 files changed, 43 insertions(+), 2 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Flow
refs/changes/47/228347/1
diff --git a/Flow.php b/Flow.php
index 52f49fe..cc92149 100644
--- a/Flow.php
+++ b/Flow.php
@@ -121,6 +121,8 @@
$wgHooks['AbuseFilter-computeVariable'][] =
'FlowHooks::onAbuseFilterComputeVariable';
$wgHooks['AbortEmailNotification'][] = 'FlowHooks::onAbortEmailNotification';
$wgHooks['EchoAbortEmailNotification'][] =
'FlowHooks::onEchoAbortEmailNotification';
+$wgHooks['BeforeEchoEventInsert'][] = 'FlowHooks::onBeforeEchoEventInsert';
+$wgHooks['ArticleEditUpdateNewTalk'][] =
'FlowHooks::onArticleEditUpdateNewTalk';
$wgHooks['InfoAction'][] = 'FlowHooks::onInfoAction';
$wgHooks['SpecialCheckUserGetLinksFromRow'][] =
'FlowHooks::onSpecialCheckUserGetLinksFromRow';
$wgHooks['CheckUserInsertForRecentChange'][] =
'FlowHooks::onCheckUserInsertForRecentChange';
diff --git a/Hooks.php b/Hooks.php
index f194be5..9482cf5 100644
--- a/Hooks.php
+++ b/Hooks.php
@@ -910,8 +910,7 @@
return false;
}
- $talkPageManagerUser =
self::$occupationController->getTalkpageManager();
- if ( $editor->equals( $talkPageManagerUser ) ) {
+ if ( self::isTalkpageManagerUser( $editor ) ) {
return false;
}
@@ -919,6 +918,46 @@
}
/**
+ * Suppress all Echo notifications generated by the Talk page manager
user
+ *
+ * @param EchoEvent $event
+ * @return bool
+ */
+ public static function onBeforeEchoEventInsert( EchoEvent $event ) {
+ if ( self::isTalkpageManagerUser( $event->getAgent() ) ) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Suppress the 'You have new messages!' indication when a change to a
+ * user talk page is done by the talk page manager user.
+ *
+ * @param WikiPage $page
+ * @param User $recipient
+ * @return bool
+ */
+ public static function onArticleEditUpdateNewTalk( WikiPage $page, User
$recipient ) {
+ $user = User::newFromId( $page->getUser( Revision::RAW ) );
+ if ( self::isTalkpageManagerUser( $user ) ) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * @param User $user
+ * @return bool
+ */
+ private static function isTalkpageManagerUser( User $user ) {
+ $talkPageManagerUser =
self::$occupationController->getTalkpageManager();
+ return $user && $user->equals( $talkPageManagerUser );
+ }
+
+ /**
* Don't send email notifications that are imported from LiquidThreads.
It will
* still be in their web notifications (if enabled), but they will
never be
* notified via email (regardless of batching settings) for this
particular
--
To view, visit https://gerrit.wikimedia.org/r/228347
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I4ed66baa44c382aea3944a8cfd16fcb1b1d6edf0
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Flow
Gerrit-Branch: master
Gerrit-Owner: Sbisson <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits