Add soa risk assement via document

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
Sacha Al Himdani
2026-02-19 11:46:09 +01:00
parent 86e4c2eada
commit f2d307ac1a

View File

@@ -150,7 +150,7 @@ func (cwrs *ControlsWithRisk) LoadByControlIDs(
controlIDs []gid.GID, controlIDs []gid.GID,
) error { ) error {
q := ` q := `
WITH control_risks AS ( WITH control_risks_via_measures AS (
SELECT DISTINCT SELECT DISTINCT
cm.control_id, cm.control_id,
rm.risk_id, rm.risk_id,
@@ -163,6 +163,25 @@ WITH control_risks AS (
risks r ON rm.risk_id = r.id risks r ON rm.risk_id = r.id
WHERE WHERE
cm.control_id = ANY(@control_ids) 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 SELECT DISTINCT
control_id control_id