Skip to content

Commit

Permalink
sameip: фильтр по анониму
Browse files Browse the repository at this point in the history
  • Loading branch information
maxcom committed Aug 5, 2024
1 parent 479611c commit a50a287
Showing 1 changed file with 21 additions and 3 deletions.
24 changes: 21 additions & 3 deletions src/main/scala/ru/org/linux/spring/SameIPController.scala
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import ru.org.linux.auth.AuthUtil.ModeratorOnly
import ru.org.linux.auth.IPBlockDao
import ru.org.linux.sameip.SameIpService
import ru.org.linux.site.BadInputException
import ru.org.linux.spring.SameIPController.AnonymousScoreFilter
import ru.org.linux.spring.dao.UserAgentDao
import ru.org.linux.user.UserService

Expand All @@ -30,6 +31,7 @@ import scala.jdk.CollectionConverters.SeqHasAsJava

object SameIPController {
private val ipRE = Pattern.compile("^\\d+\\.\\d+\\.\\d+\\.\\d+$")
private val AnonymousScoreFilter = -9999
}

@Controller
Expand All @@ -40,7 +42,12 @@ class SameIPController(ipBlockDao: IPBlockDao, userService: UserService, userAge

@ModelAttribute("scores")
def scores: util.List[(String, String)] =
Seq("" -> "Любой score", "46" -> "score <= 45", "50" -> "score < 50", "100" -> "score < 100").asJava
Seq(
"" -> "Любой score",
"-9999" -> "anonymous",
"46" -> "score <= 45",
"50" -> "score < 50",
"100" -> "score < 100").asJava

@RequestMapping(Array("/sameip.jsp"))
def sameIP(@RequestParam(required = false) ip: String, @RequestParam(required = false, defaultValue = "32") mask: Int,
Expand Down Expand Up @@ -76,10 +83,15 @@ class SameIPController(ipBlockDao: IPBlockDao, userService: UserService, userAge
mv.getModel.put("hasMoreComments", posts.size == rowsLimit)
mv.getModel.put("rowsLimit", rowsLimit)

val users = userService.getUsersWithAgent(ip = Option(ipMask), userAgent = userAgentOpt, limit = rowsLimit)
val users = if (!scoreOpt.contains(AnonymousScoreFilter)) {
userService.getUsersWithAgent(ip = Option(ipMask), userAgent = userAgentOpt, limit = rowsLimit)
} else {
Seq.empty.asJava
}

mv.getModel.put("users", users)
mv.getModel.put("hasMoreUsers", users.size == rowsLimit)

mv.getModel.put("score", score)

if (ip != null) {
Expand Down Expand Up @@ -110,7 +122,13 @@ class SameIPController(ipBlockDao: IPBlockDao, userService: UserService, userAge
}
}

mv.getModel.put("newUsers", userService.getNewUsersByUAIp(ipMask, userAgent))
val newUsers = if (!scoreOpt.contains(AnonymousScoreFilter)) {
userService.getNewUsersByUAIp(ipMask, userAgent)
} else {
Seq.empty.asJava
}

mv.getModel.put("newUsers", newUsers)

if (userAgent != null) {
mv.getModel.put("userAgent", userAgentDao.getUserAgentById(userAgent).orElse(null))
Expand Down

0 comments on commit a50a287

Please sign in to comment.