diff --git a/src/Service/AnrRecommendationRiskService.php b/src/Service/AnrRecommendationRiskService.php index b2b204ab..b1b45a53 100755 --- a/src/Service/AnrRecommendationRiskService.php +++ b/src/Service/AnrRecommendationRiskService.php @@ -46,21 +46,22 @@ public function getList(FormattedInputParams $formattedInputParams): array $globalObjectsUuids = []; /** @var Entity\RecommendationRisk $recommendationRisk */ foreach ($this->recommendationRiskTable->findByParams($formattedInputParams) as $recommendationRisk) { - if ($includeRelations - && $recommendationRisk->getGlobalObject() !== null - && isset($globalObjectsUuids[$recommendationRisk->getGlobalObject()->getUuid()]) - ) { - continue; + if ($includeRelations && $recommendationRisk->hasGlobalObjectRelation()) { + $recommendation = $recommendationRisk->getRecommendation(); + $key = 'o' . $recommendationRisk->getGlobalObject()->getUuid() + . '-' . $recommendationRisk->getInstanceRisk()->getThreat()->getUuid() + . '-' . $recommendationRisk->getInstanceRisk()->getVulnerability()->getUuid() + . '-' . $recommendation->getUuid(); + if (isset($globalObjectsRecommendationsKeys[$key])) { + continue; + } + $globalObjectsRecommendationsKeys[$key] = $key; } $recommendationRisksData[] = $this->getPreparedRecommendationRiskData( $recommendationRisk, $includeRelations ); - - if ($includeRelations && $recommendationRisk->getGlobalObject() !== null) { - $globalObjectsUuids[$recommendationRisk->getGlobalObject()->getUuid()] = true; - } } return $recommendationRisksData; @@ -238,7 +239,9 @@ public function getTreatmentPlan(Entity\Anr $anr): array 'maxRisk' => $instanceRisk->getCacheMaxRisk(), ]; } else { - $path = $instanceRisk->getInstance()->getHierarchyString(); + /** @var Entity\Instance $instance */ + $instance = $instanceRisk->getInstance(); + $path = $instance->getHierarchyString(); } $instanceRisksData[$type][$index] = array_merge($instanceRiskData, [ diff --git a/src/Service/DeliverableGenerationService.php b/src/Service/DeliverableGenerationService.php index ce7a8484..18a21465 100644 --- a/src/Service/DeliverableGenerationService.php +++ b/src/Service/DeliverableGenerationService.php @@ -2420,8 +2420,13 @@ private function generateTableImplementationPlan() } $globalObjectsRecommendationsKeys = []; + $processedRecommendationsUuids = []; foreach ($recommendationRisks as $recommendationRisk) { $recommendation = $recommendationRisk->getRecommendation(); + if (isset($processedRecommendationsUuids[$recommendation->getUuid()])) { + continue; + } + $processedRecommendationsUuids[$recommendation->getUuid()] = true; if ($recommendationRisk->hasGlobalObjectRelation()) { $key = 'o' . $recommendationRisk->getGlobalObject()->getUuid() . '-' . $recommendationRisk->getInstanceRisk()->getThreat()->getUuid()