From fd17ba9ffc3350c3054746eac4b6be1a84d690ac Mon Sep 17 00:00:00 2001
From: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Date: Wed, 29 Oct 2014 15:46:42 +0200
Subject: [PATCH] Mentioned users are not limited by project scope any more

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
---
 app/models/concerns/mentionable.rb       |  6 +-----
 app/services/notification_service.rb     |  1 +
 spec/models/concerns/mentionable_spec.rb | 14 ++++++++++++++
 3 files changed, 16 insertions(+), 5 deletions(-)
 create mode 100644 spec/models/concerns/mentionable_spec.rb

diff --git a/app/models/concerns/mentionable.rb b/app/models/concerns/mentionable.rb
index 5938d9cb28e..6c1aa99668a 100644
--- a/app/models/concerns/mentionable.rb
+++ b/app/models/concerns/mentionable.rb
@@ -52,11 +52,7 @@ module Mentionable
       if identifier == "all"
         users += project.team.members.flatten
       else
-        if has_project
-          id = project.team.members.find_by(username: identifier).try(:id)
-        else
-          id = User.find_by(username: identifier).try(:id)
-        end
+        id = User.find_by(username: identifier).try(:id)
         users << User.find(id) unless id.blank?
       end
     end
diff --git a/app/services/notification_service.rb b/app/services/notification_service.rb
index 36781314278..c9a1574b84e 100644
--- a/app/services/notification_service.rb
+++ b/app/services/notification_service.rb
@@ -124,6 +124,7 @@ class NotificationService
     opts = { noteable_type: note.noteable_type, project_id: note.project_id }
 
     target = note.noteable
+
     if target.respond_to?(:participants)
       recipients = target.participants
     else
diff --git a/spec/models/concerns/mentionable_spec.rb b/spec/models/concerns/mentionable_spec.rb
new file mode 100644
index 00000000000..ca6f11b2a4d
--- /dev/null
+++ b/spec/models/concerns/mentionable_spec.rb
@@ -0,0 +1,14 @@
+require 'spec_helper'
+
+describe Issue, "Mentionable" do
+  describe :mentioned_users do
+    let!(:user) { create(:user, username: 'stranger') }
+    let!(:user2) { create(:user, username: 'john') }
+    let!(:issue) { create(:issue, description: '@stranger mentioned') }
+
+    subject { issue.mentioned_users }
+
+    it { should include(user) }
+    it { should_not include(user2) }
+  end
+end
-- 
GitLab