Bsitu has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/53623


Change subject: (bug 46051) mentioned users should not be as object in database
......................................................................

(bug 46051) mentioned users should not be as object in database

Change-Id: Id96ade333d8150fdc357db47cba9a609f9e7e108
---
M Hooks.php
M includes/DiscussionParser.php
2 files changed, 15 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Echo 
refs/changes/23/53623/1

diff --git a/Hooks.php b/Hooks.php
index ef3ebc9..75bcf87 100644
--- a/Hooks.php
+++ b/Hooks.php
@@ -191,7 +191,14 @@
                                break;
                        case 'mention':
                                $extraData = $event->getExtra();
-                               $users += $extraData['mentioned-users'];
+                               foreach ( $extraData['mentioned-users'] as 
$userId ) {
+                                       //backward compatibility
+                                       if ( $userId instanceof User ) {
+                                               $users[$userId->getID()] = 
$userId;
+                                       } else {
+                                               $users[$userId] = 
User::newFromId( $userId );
+                                       }
+                               }
                                break;
                }
 
diff --git a/includes/DiscussionParser.php b/includes/DiscussionParser.php
index 6289c75..740ea2e 100644
--- a/includes/DiscussionParser.php
+++ b/includes/DiscussionParser.php
@@ -104,6 +104,7 @@
                $output = self::parseNonEditWikitext( $content, new Article( 
$title ) );
                $links = $output->getLinks();
                $mentionedUsers = array();
+               $count = 0;
 
                foreach ( $links[NS_USER] as $dbk => $page_id ) {
                        $user = User::newFromName( $dbk );
@@ -117,7 +118,12 @@
                        ) {
                                continue;
                        }
-                       $mentionedUsers[$user->getId()] = $user;
+                       $mentionedUsers[$user->getId()] = $user->getId();
+                       $count++;
+                       // This is an unbounded list, put a cap on the 
allowable mentioned user list
+                       if ( $count > 300 ) {
+                               break;
+                       }
                }
 
                if ( !$mentionedUsers ) {

-- 
To view, visit https://gerrit.wikimedia.org/r/53623
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id96ade333d8150fdc357db47cba9a609f9e7e108
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Echo
Gerrit-Branch: master
Gerrit-Owner: Bsitu <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to