From 2be255a423ccb3a638442e593c2c18cee2c0f7c5 Mon Sep 17 00:00:00 2001
From: George Secrieru <george.secrieru@gmail.com>
Date: Tue, 15 Sep 2015 18:21:54 -0300
Subject: [PATCH] Only converting into link the strings starting with a hash
 (#) that are currently naming a channel (should close #807)

---
 packages/rocketchat-mentions/client.coffee |  3 +++
 packages/rocketchat-mentions/server.coffee | 14 ++++++++++++++
 2 files changed, 17 insertions(+)

diff --git a/packages/rocketchat-mentions/client.coffee b/packages/rocketchat-mentions/client.coffee
index fe255bd2fd3..2e981a15121 100644
--- a/packages/rocketchat-mentions/client.coffee
+++ b/packages/rocketchat-mentions/client.coffee
@@ -39,6 +39,9 @@ class MentionsClient
 				channels = _.unique channels
 				channels = channels.join('|')
 				msg = msg.replace new RegExp("(?:^|\\s|\\n)(#(#{channels}))\\b", 'g'), (match, mention, channel) ->
+					if not message.temp?
+						if not _.findWhere(message.channels, {name: channel})?
+							return match
 					return match.replace mention, "<a href=\"\" class=\"mention-link\" data-channel=\"#{channel}\">#{mention}</a>"
 
 
diff --git a/packages/rocketchat-mentions/server.coffee b/packages/rocketchat-mentions/server.coffee
index 3526500d546..781a3349b36 100644
--- a/packages/rocketchat-mentions/server.coffee
+++ b/packages/rocketchat-mentions/server.coffee
@@ -23,6 +23,20 @@ class MentionsServer
 				verifiedMentions.push verifiedMention if verifiedMention?
 			if verifiedMentions.length isnt 0
 				message.mentions = verifiedMentions
+
+		channels = []
+		message.msg.replace /(?:^|\s|\n)(?:#)([A-Za-z0-9-_.]+)/g, (match, mention) ->
+			channels.push mention
+
+		if channels.length isnt 0
+			channels = _.unique channels
+			verifiedChannels = []
+			channels.forEach (mention) ->
+				verifiedChannel = ChatRoom.findOne({ name: mention, t: 'c' }, { fields: {_id: 1, name: 1 } })
+				verifiedChannels.push verifiedChannel if verifiedChannel?
+
+			if verifiedChannels.length isnt 0
+				message.channels = verifiedChannels
 		return message
 
 RocketChat.callbacks.add 'beforeSaveMessage', MentionsServer
\ No newline at end of file
-- 
GitLab