From ac538fe5c9b8f4eb13ea606672faf22bf3839c72 Mon Sep 17 00:00:00 2001 From: To-om Date: Sat, 10 Apr 2021 19:18:31 +0200 Subject: [PATCH] #1946 Improve performance of case->alert query --- thehive/app/org/thp/thehive/controllers/v1/CaseCtrl.scala | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/thehive/app/org/thp/thehive/controllers/v1/CaseCtrl.scala b/thehive/app/org/thp/thehive/controllers/v1/CaseCtrl.scala index 7fb243c841..e88f443fdd 100644 --- a/thehive/app/org/thp/thehive/controllers/v1/CaseCtrl.scala +++ b/thehive/app/org/thp/thehive/controllers/v1/CaseCtrl.scala @@ -34,6 +34,7 @@ class CaseCtrl @Inject() ( userSrv: UserSrv, taskSrv: TaskSrv, organisationSrv: OrganisationSrv, + alertSrv: AlertSrv, db: Database, appConfig: ApplicationConfig ) extends QueryableCtrl @@ -80,7 +81,12 @@ class CaseCtrl @Inject() ( ), Query[Traversal.V[Case], Traversal.V[User]]("assignableUsers", (caseSteps, authContext) => caseSteps.assignableUsers(authContext)), Query[Traversal.V[Case], Traversal.V[Organisation]]("organisations", (caseSteps, authContext) => caseSteps.organisations.visible(authContext)), - Query[Traversal.V[Case], Traversal.V[Alert]]("alerts", (caseSteps, authContext) => caseSteps.alert.visible(organisationSrv)(authContext)), + Query[Traversal.V[Case], Traversal.V[Alert]]( + "alerts", + (caseSteps, authContext) => +// caseSteps.alert.visible(organisationSrv)(authContext) + alertSrv.startTraversal(caseSteps.graph).has(_.caseId, P.within(caseSteps._id.toSeq: _*)).visible(organisationSrv)(authContext) + ), Query[Traversal.V[Case], Traversal.V[Share]]("shares", (caseSteps, authContext) => caseSteps.shares.visible(authContext)), Query[Traversal.V[Case], Traversal.V[Procedure]]("procedures", (caseSteps, _) => caseSteps.procedure) )