Skip to content

Commit

Permalink
#2081 Put parameter in querystring
Browse files Browse the repository at this point in the history
  • Loading branch information
To-om committed Jun 14, 2021
1 parent d898e54 commit fb1f8b5
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 20 deletions.
22 changes: 9 additions & 13 deletions thehive/app/org/thp/thehive/controllers/v1/AdminCtrl.scala
Original file line number Diff line number Diff line change
Expand Up @@ -141,17 +141,13 @@ class AdminCtrl @Inject() (
}

private val rangeRegex = "(\\d+)-(\\d+)".r
private def getOperations(schemaName: String, select: String, filter: String): Seq[(Operation, Int)] = {
val ranges = select match {
case "all" => Seq(0 until Int.MaxValue)
case other =>
other.split(',').toSeq.map {
case rangeRegex(from, to) => from.toInt to to.toInt
case number => number.toInt to number.toInt
}
}
private def getOperations(schemaName: String, select: Option[String], filter: Option[String]): Seq[(Operation, Int)] = {
val ranges = select.fold(Seq(0 until Int.MaxValue))(_.split(',').toSeq.map {
case rangeRegex(from, to) => from.toInt to to.toInt
case number => number.toInt to number.toInt
})

val filters = filter.split(',')
val filters = filter.fold(Seq("all"))(_.split(','))

schemas
.filter(_.name == schemaName)
Expand All @@ -162,7 +158,7 @@ class AdminCtrl @Inject() (
.operations
.zipWithIndex
.filter {
case (_, i) => ranges.exists(_.contains(i + 1))
case (_, i) => ranges.exists(_.contains(i))
}
.filter {
case (_: AddVertexModel, _) =>
Expand Down Expand Up @@ -197,7 +193,7 @@ class AdminCtrl @Inject() (
}
}

def schemaRepair(schemaName: String, select: String, filter: String): Action[AnyContent] =
def schemaRepair(schemaName: String, select: Option[String], filter: Option[String]): Action[AnyContent] =
entrypoint("Repair schema")
.authPermitted(Permissions.managePlatform) { _ =>
val result = getOperations(schemaName, select, filter)
Expand All @@ -213,7 +209,7 @@ class AdminCtrl @Inject() (
Success(Results.Ok(Json.toJson(result)))
}

def schemaInfo(schemaName: String, select: String, filter: String): Action[AnyContent] =
def schemaInfo(schemaName: String, select: Option[String], filter: Option[String]): Action[AnyContent] =
entrypoint("Schema info")
.authPermitted(Permissions.managePlatform) { _ =>
val output = getOperations(schemaName, select, filter).map {
Expand Down
14 changes: 7 additions & 7 deletions thehive/app/org/thp/thehive/controllers/v1/Router.scala
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,13 @@ class Router @Inject() (
case GET(p"/status") => statusCtrl.get
// GET /health controllers.StatusCtrl.health

case GET(p"/admin/check/stats") => adminCtrl.checkStats
case GET(p"/admin/check/$name/trigger") => adminCtrl.triggerCheck(name)
case GET(p"/admin/index/status") => adminCtrl.indexStatus
case GET(p"/admin/index/$name/reindex") => adminCtrl.reindex(name)
case GET(p"/admin/log/set/$packageName/$level") => adminCtrl.setLogLevel(packageName, level)
case POST(p"/admin/schema/repair/$schemaName/$select/$filter") => adminCtrl.schemaRepair(schemaName, select, filter)
case POST(p"/admin/schema/info/$schemaName/$select/$filter") => adminCtrl.schemaInfo(schemaName, select, filter)
case GET(p"/admin/check/stats") => adminCtrl.checkStats
case GET(p"/admin/check/$name/trigger") => adminCtrl.triggerCheck(name)
case GET(p"/admin/index/status") => adminCtrl.indexStatus
case GET(p"/admin/index/$name/reindex") => adminCtrl.reindex(name)
case GET(p"/admin/log/set/$packageName/$level") => adminCtrl.setLogLevel(packageName, level)
case POST(p"/admin/schema/repair/$schemaName" ? q_o"select=$select" ? q_o"filter=$filter") => adminCtrl.schemaRepair(schemaName, select, filter)
case POST(p"/admin/schema/info/$schemaName" ? q_o"select=$select" ? q_o"filter=$filter") => adminCtrl.schemaInfo(schemaName, select, filter)

// GET /logout controllers.AuthenticationCtrl.logout()
case GET(p"/logout") => authenticationCtrl.logout
Expand Down

0 comments on commit fb1f8b5

Please sign in to comment.