2018-10-06 19:10:08 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2017-12-01 04:21:05 -05:00
|
|
|
module Banzai
|
|
|
|
module ReferenceParser
|
|
|
|
class IssuableParser < BaseParser
|
|
|
|
def nodes_visible_to_user(user, nodes)
|
|
|
|
records = records_for_nodes(nodes)
|
|
|
|
|
|
|
|
nodes.select do |node|
|
|
|
|
issuable = records[node]
|
|
|
|
|
|
|
|
issuable && can_read_reference?(user, issuable)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def referenced_by(nodes)
|
|
|
|
records = records_for_nodes(nodes)
|
|
|
|
|
|
|
|
nodes.map { |node| records[node] }.compact.uniq
|
|
|
|
end
|
|
|
|
|
|
|
|
def can_read_reference?(user, issuable)
|
2017-12-11 09:21:06 -05:00
|
|
|
can?(user, "read_#{issuable.class.to_s.underscore}_iid".to_sym, issuable)
|
2017-12-01 04:21:05 -05:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|