Skip to content

Commit

Permalink
#1255 Ignore case template in alert if it doesn't exist
Browse files Browse the repository at this point in the history
  • Loading branch information
To-om committed Mar 10, 2020
1 parent ee3c19d commit b879920
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 9 deletions.
4 changes: 2 additions & 2 deletions thehive/app/org/thp/thehive/controllers/v0/AlertCtrl.scala
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import org.thp.scalligraph.models.Database
import org.thp.scalligraph.query.{ParamQuery, PropertyUpdater, PublicProperty, Query}
import org.thp.scalligraph.steps.PagedResult
import org.thp.scalligraph.steps.StepsOps._
import org.thp.scalligraph.{RichOptionTry, RichSeq, _}
import org.thp.scalligraph.{RichSeq, _}
import org.thp.thehive.controllers.v0.Conversion._
import org.thp.thehive.dto.v0.{InputAlert, InputObservable}
import org.thp.thehive.models._
Expand Down Expand Up @@ -84,9 +84,9 @@ class AlertCtrl @Inject() (
val inputAlert: InputAlert = request.body("alert")
val observables: Seq[InputObservable] = request.body("observables")
val customFields = inputAlert.customFields.map(c => c.name -> c.value).toMap
val caseTemplate = caseTemplateName.flatMap(caseTemplateSrv.get(_).visible.headOption())
for {
organisation <- userSrv.current.organisations(Permissions.manageAlert).get(request.organisation).getOrFail()
caseTemplate <- caseTemplateName.map(caseTemplateSrv.get(_).visible.getOrFail()).flip
richObservables <- observables.toTry(createObservable).map(_.flatten)
richAlert <- alertSrv.create(request.body("alert").toAlert, organisation, inputAlert.tags, customFields, caseTemplate)
_ <- auditSrv.mergeAudits(richObservables.toTry(o => alertSrv.addObservable(richAlert.alert, o)))(_ => Success(()))
Expand Down
8 changes: 1 addition & 7 deletions thehive/app/org/thp/thehive/controllers/v1/AlertCtrl.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package org.thp.thehive.controllers.v1
import play.api.mvc.{Action, AnyContent, Results}

import javax.inject.{Inject, Singleton}
import org.thp.scalligraph.RichOptionTry
import org.thp.scalligraph.controllers.{Entrypoint, FieldsParser}
import org.thp.scalligraph.models.Database
import org.thp.scalligraph.query.{ParamQuery, PropertyUpdater, PublicProperty, Query}
Expand Down Expand Up @@ -53,13 +52,8 @@ class AlertCtrl @Inject() (
.authTransaction(db) { implicit request => implicit graph =>
val caseTemplateName: Option[String] = request.body("caseTemplate")
val inputAlert: InputAlert = request.body("alert")
val caseTemplate = caseTemplateName.flatMap(ct => caseTemplateSrv.get(ct).visible.headOption())
for {
caseTemplate <- caseTemplateName.map { ct =>
caseTemplateSrv
.get(ct)
.visible
.getOrFail()
}.flip
organisation <- userSrv.current.organisations(Permissions.manageAlert).getOrFail()
customFields = inputAlert.customFieldValue.map(cf => cf.name -> cf.value).toMap
richAlert <- alertSrv.create(request.body("alert").toAlert, organisation, inputAlert.tags, customFields, caseTemplate)
Expand Down

0 comments on commit b879920

Please sign in to comment.