diff options
author | Jarka Kadlecova <jarka@gitlab.com> | 2017-05-10 13:13:33 +0200 |
---|---|---|
committer | Jarka Kadlecova <jarka@gitlab.com> | 2017-05-11 20:41:43 +0200 |
commit | 70b926e013dd05781aaff54ea96ee27f2ef65a6a (patch) | |
tree | 636bd043757e1b1d1089e6e4952e5e7c0308d158 /app/models/concerns/mentionable.rb | |
parent | 667005d5ac72698503911c997fb3257e509147b5 (diff) | |
download | gitlab-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.rb | 13 |
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) |