From 18f070b7e4c2405b0ffc17626d616010dc605859 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Thu, 27 Aug 2015 20:32:56 -0300 Subject: [PATCH 1/2] Join user in room via mention --- packages/rocketchat-lib/server/sendMessage.coffee | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/rocketchat-lib/server/sendMessage.coffee b/packages/rocketchat-lib/server/sendMessage.coffee index 4c48a7214845a..320cbc62c8941 100644 --- a/packages/rocketchat-lib/server/sendMessage.coffee +++ b/packages/rocketchat-lib/server/sendMessage.coffee @@ -99,6 +99,14 @@ RocketChat.sendMessage = (user, message, room, options) -> mentionIds.push mention._id if mentionIds.length > 0 + usersOfMention = Meteor.users.find({_id: {$in: mentionIds}}, {fields: {_id: 1}}).fetch() + + if mentionIds.indexOf('all') is -1 + for usersOfMentionItem in usersOfMention + if room.usernames.indexOf(usersOfMentionItem.username) is -1 + Meteor.runAsUser usersOfMentionItem._id, -> + Meteor.call 'joinRoom', room._id + ### Update all other subscriptions of mentioned users to alert their owners and incrementing the unread counter for mentions and direct messages @@ -141,7 +149,6 @@ RocketChat.sendMessage = (user, message, room, options) -> query._id = $in: mentionIds - usersOfMention = Meteor.users.find(query, {fields: {_id: 1}}).fetch() usersOfMentionIds = _.pluck(usersOfMention, '_id'); if usersOfMentionIds.length > 0 Push.send From 54420b5e9c2bf035bed82dd74cf0ba5bd1cfe59f Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Thu, 27 Aug 2015 20:39:58 -0300 Subject: [PATCH 2/2] Some fixes --- packages/rocketchat-lib/server/sendMessage.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/rocketchat-lib/server/sendMessage.coffee b/packages/rocketchat-lib/server/sendMessage.coffee index 320cbc62c8941..afde5c53aa23a 100644 --- a/packages/rocketchat-lib/server/sendMessage.coffee +++ b/packages/rocketchat-lib/server/sendMessage.coffee @@ -99,7 +99,7 @@ RocketChat.sendMessage = (user, message, room, options) -> mentionIds.push mention._id if mentionIds.length > 0 - usersOfMention = Meteor.users.find({_id: {$in: mentionIds}}, {fields: {_id: 1}}).fetch() + usersOfMention = Meteor.users.find({_id: {$in: mentionIds}}, {fields: {_id: 1, username: 1}}).fetch() if mentionIds.indexOf('all') is -1 for usersOfMentionItem in usersOfMention