From 11731276b7ed8ca449cb9ec9c7a7450778f4e78c Mon Sep 17 00:00:00 2001 From: Sean Yeoh Date: Wed, 3 Feb 2021 17:02:04 +0800 Subject: [PATCH] Expose node from evidence --- lib/dradis/plugins/content_service/nodes.rb | 31 ++++++++++----------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/lib/dradis/plugins/content_service/nodes.rb b/lib/dradis/plugins/content_service/nodes.rb index 5facc60..0452be1 100644 --- a/lib/dradis/plugins/content_service/nodes.rb +++ b/lib/dradis/plugins/content_service/nodes.rb @@ -17,6 +17,21 @@ def reporting_nodes nodes.sort_by! { |node| node.label.split('.').map(&:to_i) } end + # This method returns a list of nodes associated with Evidence + # instances. When a node is affected by multiple issues, or multiple pieces + # of evidence, we just want a single reference to it. + # + # Returns and Array with a unique collection of Nodes. + def nodes_from_evidence + all_issues. + includes(:evidence, evidence: :node). + collect(&:evidence). + # Each Issue can have 0, 1 or more Evidence + map { |evidence_collection| evidence_collection.collect(&:node) }. + flatten. + uniq + end + def create_node(args={}) label = args[:label] || default_node_label parent = args[:parent] || default_node_parent @@ -59,22 +74,6 @@ def default_node_type @default_node_type ||= Node::Types::DEFAULT end - - # Private: this method returns a list of nodes associated with Evidence - # instances. When a node is affected by multiple issues, or multiple pieces - # of evidence, we just want a single reference to it. - # - # Returns and Array with a unique collection of Nodes. - def nodes_from_evidence - all_issues. - includes(:evidence, evidence: :node). - collect(&:evidence). - # Each Issue can have 0, 1 or more Evidence - map { |evidence_collection| evidence_collection.collect(&:node) }. - flatten. - uniq - end - # Private: this method returns a list of nodes in the project that have some # properties associated with them. Typically properties are used for HOST # type nodes, and even if they have no issues / evidence associated, we want