@@ -60,9 +60,9 @@ defmodule ValentineWeb.WorkspaceLive.SRTM.Index do
60
60
|> assign ( :page_title , gettext ( "Security Requirements Traceability Matrix" ) )
61
61
end
62
62
63
- defp allocated_controls ( controls , assumed , mitigated ) do
64
- assumed_ids = Map . keys ( assumed )
65
- mitigated_ids = Map . keys ( mitigated )
63
+ defp allocated_controls ( controls , assumed , mitigated , threats ) do
64
+ out_of_scope_ids = Map . keys ( assumed )
65
+ in_scope_ids = ( Map . keys ( mitigated ) ++ Map . keys ( threats ) ) |> Enum . uniq ( )
66
66
67
67
initial_acc = % {
68
68
not_allocated: % { } ,
@@ -72,18 +72,18 @@ defmodule ValentineWeb.WorkspaceLive.SRTM.Index do
72
72
73
73
Enum . reduce ( controls , initial_acc , fn control , acc ->
74
74
cond do
75
- control . nist_id in assumed_ids ->
75
+ control . nist_id in out_of_scope_ids ->
76
76
put_in (
77
77
acc ,
78
78
[ :out_of_scope , control . nist_id ] ,
79
79
[ { control , assumed [ control . nist_id ] } ]
80
80
)
81
81
82
- control . nist_id in mitigated_ids ->
82
+ control . nist_id in in_scope_ids ->
83
83
put_in (
84
84
acc ,
85
85
[ :in_scope , control . nist_id ] ,
86
- [ { control , mitigated [ control . nist_id ] } ]
86
+ [ { control , ( mitigated [ control . nist_id ] || [ ] ) ++ ( threats [ control . nist_id ] || [ ] ) } ]
87
87
)
88
88
89
89
true ->
@@ -124,10 +124,14 @@ defmodule ValentineWeb.WorkspaceLive.SRTM.Index do
124
124
)
125
125
end
126
126
127
+ defp item_content ( item = % Composer.Threat { } ) , do: Composer.Threat . show_statement ( item )
128
+ defp item_content ( item ) , do: item . content
129
+
127
130
defp map_controls ( controls , workspace ) do
128
131
assumed_controls = get_tagged_controls ( workspace . assumptions )
129
132
mitigated_controls = get_tagged_controls ( workspace . mitigations )
130
- allocated_controls ( controls , assumed_controls , mitigated_controls )
133
+ threat_controls = get_tagged_controls ( workspace . threats )
134
+ allocated_controls ( controls , assumed_controls , mitigated_controls , threat_controls )
131
135
end
132
136
133
137
defp calculate_percentage ( controls , scope ) do
0 commit comments