summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2015-10-13 13:36:47 +0200
committerDouwe Maan <douwe@gitlab.com>2015-10-13 13:36:47 +0200
commit5dd77358f6293249494bf390140843f63dfd220a (patch)
tree015378225c7ca1c293f4f3565313eab4298d90bb
parent9d066bc9417b06c8eaa8a7e5e73b153093102bbc (diff)
downloadgitlab-ce-5dd77358f6293249494bf390140843f63dfd220a.tar.gz
Pass project to RedactorFilter
-rw-r--r--app/helpers/gitlab_markdown_helper.rb4
-rw-r--r--lib/gitlab/markdown.rb11
-rw-r--r--lib/gitlab/markdown/reference_filter.rb2
3 files changed, 11 insertions, 6 deletions
diff --git a/app/helpers/gitlab_markdown_helper.rb b/app/helpers/gitlab_markdown_helper.rb
index 1b8bb46d25e..65813482120 100644
--- a/app/helpers/gitlab_markdown_helper.rb
+++ b/app/helpers/gitlab_markdown_helper.rb
@@ -59,7 +59,7 @@ module GitlabMarkdownHelper
user = current_user if defined?(current_user)
html = Gitlab::Markdown.render(text, context)
- Gitlab::Markdown.post_process(html, pipeline: context[:pipeline], user: user)
+ Gitlab::Markdown.post_process(html, pipeline: context[:pipeline], project: @project, user: user)
end
# TODO (rspeicher): Remove all usages of this helper and just call `markdown`
@@ -78,7 +78,7 @@ module GitlabMarkdownHelper
user = current_user if defined?(current_user)
html = Gitlab::Markdown.gfm(text, options)
- Gitlab::Markdown.post_process(html, pipeline: options[:pipeline], user: user)
+ Gitlab::Markdown.post_process(html, pipeline: options[:pipeline], project: @project, user: user)
end
def asciidoc(text)
diff --git a/lib/gitlab/markdown.rb b/lib/gitlab/markdown.rb
index f389d0a80dd..d5b0060dd56 100644
--- a/lib/gitlab/markdown.rb
+++ b/lib/gitlab/markdown.rb
@@ -47,12 +47,17 @@ module Gitlab
#
# html - String to process
# options - Hash of options to customize output
- # :pipeline - Symbol pipeline type
- # :user - User object
+ # :pipeline - Symbol pipeline type
+ # :project - Project
+ # :user - User object
#
# Returns an HTML-safe String
def self.post_process(html, options)
- doc = post_processor.to_document(html, current_user: options[:user])
+ context = {
+ project: options[:project],
+ current_user: options[:user]
+ }
+ doc = post_processor.to_document(html, context)
if options[:pipeline] == :atom
doc.to_html(save_with: Nokogiri::XML::Node::SaveOptions::AS_XHTML)
diff --git a/lib/gitlab/markdown/reference_filter.rb b/lib/gitlab/markdown/reference_filter.rb
index c7d4b15d458..0ea966c744b 100644
--- a/lib/gitlab/markdown/reference_filter.rb
+++ b/lib/gitlab/markdown/reference_filter.rb
@@ -15,7 +15,7 @@ module Gitlab
def self.user_can_reference?(user, node, context)
if node.has_attribute?('data-project')
project_id = node.attr('data-project').to_i
- return true if project_id == context[:project].id
+ return true if project_id == context[:project].try(:id)
project = Project.find(project_id) rescue nil
Ability.abilities.allowed?(user, :read_project, project)