From 8d0dd4193839c91e859f5f4dd0e7478b15f5266e Mon Sep 17 00:00:00 2001 From: To-om Date: Thu, 19 Nov 2020 09:05:06 +0100 Subject: [PATCH] #1652 Clone traversal to fix updates --- thehive/app/org/thp/thehive/services/LogSrv.scala | 8 +++----- thehive/app/org/thp/thehive/services/ObservableSrv.scala | 8 ++++---- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/thehive/app/org/thp/thehive/services/LogSrv.scala b/thehive/app/org/thp/thehive/services/LogSrv.scala index 7f8f68b25d..9e0aa4f5b5 100644 --- a/thehive/app/org/thp/thehive/services/LogSrv.scala +++ b/thehive/app/org/thp/thehive/services/LogSrv.scala @@ -68,11 +68,9 @@ class LogSrv @Inject() (attachmentSrv: AttachmentSrv, auditSrv: AuditSrv, taskSr )(implicit graph: Graph, authContext: AuthContext): Try[(Traversal.V[Log], JsObject)] = auditSrv.mergeAudits(super.update(traversal, propertyUpdaters)) { case (logSteps, updatedFields) => - for { - task <- logSteps.clone().task.getOrFail("Task") - log <- logSteps.getOrFail("Log") - _ <- auditSrv.log.update(log, task, updatedFields) - } yield () + logSteps.clone().project(_.by.by(_.task)).getOrFail("Log").flatMap { + case (log, task) => auditSrv.log.update(log, task, updatedFields) + } } } diff --git a/thehive/app/org/thp/thehive/services/ObservableSrv.scala b/thehive/app/org/thp/thehive/services/ObservableSrv.scala index 2a156ec43f..dc47f08504 100644 --- a/thehive/app/org/thp/thehive/services/ObservableSrv.scala +++ b/thehive/app/org/thp/thehive/services/ObservableSrv.scala @@ -183,10 +183,10 @@ class ObservableSrv @Inject() ( )(implicit graph: Graph, authContext: AuthContext): Try[(Traversal.V[Observable], JsObject)] = auditSrv.mergeAudits(super.update(traversal, propertyUpdaters)) { case (observableSteps, updatedFields) => - for { - observable <- observableSteps.getOrFail("Observable") - _ <- auditSrv.observable.update(observable, updatedFields) - } yield () + observableSteps + .clone() + .getOrFail("Observable") + .flatMap(observable => auditSrv.observable.update(observable, updatedFields)) } }