From f2d307ac1af04264a342b3c6f2b72187019205a9 Mon Sep 17 00:00:00 2001 From: Sacha Al Himdani Date: Thu, 19 Feb 2026 11:46:09 +0100 Subject: [PATCH] Add soa risk assement via document Signed-off-by: Sacha Al Himdani --- pkg/coredata/control_mesure.go | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/pkg/coredata/control_mesure.go b/pkg/coredata/control_mesure.go index 8a19f4438..c72d51f1d 100644 --- a/pkg/coredata/control_mesure.go +++ b/pkg/coredata/control_mesure.go @@ -150,7 +150,7 @@ func (cwrs *ControlsWithRisk) LoadByControlIDs( controlIDs []gid.GID, ) error { q := ` -WITH control_risks AS ( +WITH control_risks_via_measures AS ( SELECT DISTINCT cm.control_id, rm.risk_id, @@ -163,6 +163,25 @@ WITH control_risks AS ( risks r ON rm.risk_id = r.id WHERE cm.control_id = ANY(@control_ids) +), +control_risks_via_documents AS ( + SELECT DISTINCT + cd.control_id, + rd.risk_id, + r.tenant_id + FROM + controls_documents cd + INNER JOIN + risks_documents rd ON cd.document_id = rd.document_id + INNER JOIN + risks r ON rd.risk_id = r.id + WHERE + cd.control_id = ANY(@control_ids) +), +control_risks AS ( + SELECT control_id, risk_id, tenant_id FROM control_risks_via_measures + UNION + SELECT control_id, risk_id, tenant_id FROM control_risks_via_documents ) SELECT DISTINCT control_id