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,
) 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