summaryrefslogtreecommitdiff
path: root/app/models/concerns/mentionable.rb
diff options
context:
space:
mode:
authorJarka Kadlecova <jarka@gitlab.com>2017-05-10 13:13:33 +0200
committerJarka Kadlecova <jarka@gitlab.com>2017-05-11 20:41:43 +0200
commit70b926e013dd05781aaff54ea96ee27f2ef65a6a (patch)
tree636bd043757e1b1d1089e6e4952e5e7c0308d158 /app/models/concerns/mentionable.rb
parent667005d5ac72698503911c997fb3257e509147b5 (diff)
downloadgitlab-ce-70b926e013dd05781aaff54ea96ee27f2ef65a6a.tar.gz
Fix cross referencing for private and internal projects31978-cross-reference-fix
Diffstat (limited to 'app/models/concerns/mentionable.rb')
-rw-r--r--app/models/concerns/mentionable.rb13
1 files changed, 7 insertions, 6 deletions
diff --git a/app/models/concerns/mentionable.rb b/app/models/concerns/mentionable.rb
index 6eddeab515e..c034bf9cbc0 100644
--- a/app/models/concerns/mentionable.rb
+++ b/app/models/concerns/mentionable.rb
@@ -44,14 +44,15 @@ module Mentionable
end
def all_references(current_user = nil, extractor: nil)
+ @extractors ||= {}
+
# Use custom extractor if it's passed in the function parameters.
if extractor
- @extractor = extractor
+ @extractors[current_user] = extractor
else
- @extractor ||= Gitlab::ReferenceExtractor.
- new(project, current_user)
+ extractor = @extractors[current_user] ||= Gitlab::ReferenceExtractor.new(project, current_user)
- @extractor.reset_memoized_values
+ extractor.reset_memoized_values
end
self.class.mentionable_attrs.each do |attr, options|
@@ -62,10 +63,10 @@ module Mentionable
skip_project_check: skip_project_check?
)
- @extractor.analyze(text, options)
+ extractor.analyze(text, options)
end
- @extractor
+ extractor
end
def mentioned_users(current_user = nil)