From c2cf25fe56fb6c45800daf574eaa589c59bc049d Mon Sep 17 00:00:00 2001 From: Robin Riclet Date: Tue, 16 Mar 2021 16:34:45 +0100 Subject: [PATCH] #1473 fixed case creation assignee & tests --- .../app/org/thp/thehive/controllers/v0/CaseCtrl.scala | 2 +- .../app/org/thp/thehive/controllers/v1/CaseCtrl.scala | 2 +- .../org/thp/thehive/controllers/v0/CaseCtrlTest.scala | 9 +++++---- .../org/thp/thehive/controllers/v1/CaseCtrlTest.scala | 5 +++-- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/thehive/app/org/thp/thehive/controllers/v0/CaseCtrl.scala b/thehive/app/org/thp/thehive/controllers/v0/CaseCtrl.scala index 21e48db454..8bb8b792cd 100644 --- a/thehive/app/org/thp/thehive/controllers/v0/CaseCtrl.scala +++ b/thehive/app/org/thp/thehive/controllers/v0/CaseCtrl.scala @@ -54,7 +54,7 @@ class CaseCtrl @Inject() ( .organisations(Permissions.manageCase) .get(request.organisation) .orFail(AuthorizationError("Operation not permitted")) - user <- userSrv.current.getOrFail("User") + user <- inputCase.user.fold(userSrv.current.getOrFail("User"))(userSrv.getByName(_).getOrFail("User")) caseTemplate <- caseTemplateName.map(ct => caseTemplateSrv.get(EntityIdOrName(ct)).visible.richCaseTemplate.getOrFail("CaseTemplate")).flip richCase <- caseSrv.create( caseTemplate.fold(inputCase)(inputCase.withCaseTemplate).toCase, diff --git a/thehive/app/org/thp/thehive/controllers/v1/CaseCtrl.scala b/thehive/app/org/thp/thehive/controllers/v1/CaseCtrl.scala index 4a2459ac8c..919ad92855 100644 --- a/thehive/app/org/thp/thehive/controllers/v1/CaseCtrl.scala +++ b/thehive/app/org/thp/thehive/controllers/v1/CaseCtrl.scala @@ -87,7 +87,7 @@ class CaseCtrl @Inject() ( for { caseTemplate <- caseTemplateName.map(ct => caseTemplateSrv.get(EntityIdOrName(ct)).visible.richCaseTemplate.getOrFail("CaseTemplate")).flip organisation <- userSrv.current.organisations(Permissions.manageCase).get(request.organisation).getOrFail("Organisation") - user <- userSrv.current.getOrFail("User") + user <- inputCase.user.fold(userSrv.current.getOrFail("User"))(userSrv.getByName(_).getOrFail("User")) richCase <- caseSrv.create( caseTemplate.fold(inputCase)(inputCase.withCaseTemplate).toCase, Some(user), diff --git a/thehive/test/org/thp/thehive/controllers/v0/CaseCtrlTest.scala b/thehive/test/org/thp/thehive/controllers/v0/CaseCtrlTest.scala index 1d9f537af8..9e565f964e 100644 --- a/thehive/test/org/thp/thehive/controllers/v0/CaseCtrlTest.scala +++ b/thehive/test/org/thp/thehive/controllers/v0/CaseCtrlTest.scala @@ -118,7 +118,8 @@ class CaseCtrlTest extends PlaySpecification with TestAppBuilder { "flag":false, "status":"Waiting" } - ] + ], + "user":"certro@thehive.local" }""" ) .as[JsObject] @@ -140,7 +141,7 @@ class CaseCtrlTest extends PlaySpecification with TestAppBuilder { pap = 2, status = "Open", tags = Set.empty, - owner = Some("certuser@thehive.local"), + owner = Some("certro@thehive.local"), stats = JsObject.empty ) ) @@ -155,7 +156,7 @@ class CaseCtrlTest extends PlaySpecification with TestAppBuilder { val assignee = app[Database].roTransaction(implicit graph => app[CaseSrv].get(EntityIdOrName(outputCase._id)).assignee.getOrFail("Case")) assignee must beSuccessfulTry - assignee.get.login shouldEqual "certuser@thehive.local" + assignee.get.login shouldEqual "certro@thehive.local" } "try to get a case" in testApp { app => @@ -380,7 +381,7 @@ class CaseCtrlTest extends PlaySpecification with TestAppBuilder { // Merge result TestCase(outputCase) must equalTo( TestCase( - caseId = 26, + caseId = 27, title = "case#21 / case#22", description = "description of case #21\n\ndescription of case #22", severity = 3, diff --git a/thehive/test/org/thp/thehive/controllers/v1/CaseCtrlTest.scala b/thehive/test/org/thp/thehive/controllers/v1/CaseCtrlTest.scala index b3cb5570bf..df33f8a93d 100644 --- a/thehive/test/org/thp/thehive/controllers/v1/CaseCtrlTest.scala +++ b/thehive/test/org/thp/thehive/controllers/v1/CaseCtrlTest.scala @@ -57,7 +57,8 @@ class CaseCtrlTest extends PlaySpecification with TestAppBuilder { tags = Set("tag1", "tag2"), flag = Some(false), tlp = Some(1), - pap = Some(3) + pap = Some(3), + user = Some("certro@thehive.local") ) ) ) @@ -77,7 +78,7 @@ class CaseCtrlTest extends PlaySpecification with TestAppBuilder { pap = 3, status = "Open", summary = None, - user = Some("certuser@thehive.local"), + user = Some("certro@thehive.local"), customFields = Seq.empty )