diff --git a/thehive/app/org/thp/thehive/controllers/v1/TagRenderer.scala b/thehive/app/org/thp/thehive/controllers/v1/TagRenderer.scala index bc9fe614e5..3b665045c3 100644 --- a/thehive/app/org/thp/thehive/controllers/v1/TagRenderer.scala +++ b/thehive/app/org/thp/thehive/controllers/v1/TagRenderer.scala @@ -18,12 +18,14 @@ trait TagRenderer extends BaseRenderer[Tag] { _.by(_.`case`.count) .by(_.alert.count) .by(_.observable.count) + .by(_.caseTemplate.count) ).domainMap { - case (caseCount, alertCount, observableCount) => + case (caseCount, alertCount, observableCount, caseTemplateCount) => Json.obj( - "case" -> caseCount, - "alert" -> alertCount, - "observable" -> observableCount + "case" -> caseCount, + "alert" -> alertCount, + "observable" -> observableCount, + "caseTemplate" -> caseTemplateCount ) } diff --git a/thehive/app/org/thp/thehive/services/TagSrv.scala b/thehive/app/org/thp/thehive/services/TagSrv.scala index 7fbaa5847d..45ada553d6 100644 --- a/thehive/app/org/thp/thehive/services/TagSrv.scala +++ b/thehive/app/org/thp/thehive/services/TagSrv.scala @@ -98,7 +98,12 @@ class TagSrv @Inject() ( Try { get(tag) .sideEffect( - _.unionFlat(_.`case`.removeValue(_.tags, tagName), _.alert.removeValue(_.tags, tagName), _.observable.removeValue(_.tags, tagName)) + _.unionFlat( + _.`case`.removeValue(_.tags, tagName), + _.alert.removeValue(_.tags, tagName), + _.observable.removeValue(_.tags, tagName), + _.caseTemplate.removeValue(_.tags, tagName) + ) ) .remove() } @@ -132,6 +137,9 @@ object TagOps { def fromAlert: Traversal.V[Tag] = traversal.filter(_.in[AlertTag]) def alert: Traversal.V[Alert] = traversal.in[AlertTag].v[Alert] + def fromCaseTemplate: Traversal.V[Tag] = traversal.filter(_.in[CaseTemplateTag]) + def caseTemplate: Traversal.V[CaseTemplate] = traversal.in[CaseTemplateTag].v[CaseTemplate] + def freetags(organisationSrv: OrganisationSrv)(implicit authContext: AuthContext): Traversal.V[Tag] = { val freeTagNamespace: String = s"_freetags_${organisationSrv.currentId(traversal.graph, authContext).value}" traversal