2018-12-13 13:39:08 +05:30
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2018-03-17 18:26:18 +05:30
|
|
|
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
|
|
|
|
|
2021-09-30 23:02:18 +05:30
|
|
|
def referenced_by(nodes, options = {})
|
2018-03-17 18:26:18 +05:30
|
|
|
records = records_for_nodes(nodes)
|
|
|
|
|
|
|
|
nodes.map { |node| records[node] }.compact.uniq
|
|
|
|
end
|
|
|
|
|
|
|
|
def can_read_reference?(user, issuable)
|
2018-03-27 19:54:05 +05:30
|
|
|
can?(user, "read_#{issuable.class.to_s.underscore}_iid".to_sym, issuable)
|
2018-03-17 18:26:18 +05:30
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|