29 lines
897 B
Ruby
29 lines
897 B
Ruby
module Banzai
|
|
module Filter
|
|
# HTML filter that replaces issue references with links. References to
|
|
# issues that do not exist are ignored.
|
|
#
|
|
# This filter supports cross-project references.
|
|
class IssueReferenceFilter < AbstractReferenceFilter
|
|
def self.object_class
|
|
Issue
|
|
end
|
|
|
|
def self.user_can_see_reference?(user, node, context)
|
|
# It is not possible to check access rights for external issue trackers
|
|
return true if context[:project].try(:external_issue_tracker)
|
|
|
|
issue = Issue.find(node.attr('data-issue')) rescue nil
|
|
Ability.abilities.allowed?(user, :read_issue, issue)
|
|
end
|
|
|
|
def find_object(project, id)
|
|
project.get_issue(id)
|
|
end
|
|
|
|
def url_for_object(issue, project)
|
|
IssuesHelper.url_for_issue(issue.iid, project, only_path: context[:only_path])
|
|
end
|
|
end
|
|
end
|
|
end
|