mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 04:01:18 +08:00
FIX: Validate tags parameter of TopicQuery (#19830)
Recently, we have seen some errors related to invalid tags value being passed to TopicQuery.
This commit is contained in:
@ -15,10 +15,15 @@ class TopicQuery
|
||||
@validators ||=
|
||||
begin
|
||||
int = lambda { |x| Integer === x || (String === x && x.match?(/^-?[0-9]+$/)) }
|
||||
|
||||
zero_up_to_max_int = lambda { |x| int.call(x) && x.to_i.between?(0, PG_MAX_INT) }
|
||||
array_or_string = lambda { |x| Array === x || String === x }
|
||||
|
||||
{ max_posts: zero_up_to_max_int, min_posts: zero_up_to_max_int, page: zero_up_to_max_int }
|
||||
{
|
||||
max_posts: zero_up_to_max_int,
|
||||
min_posts: zero_up_to_max_int,
|
||||
page: zero_up_to_max_int,
|
||||
tags: array_or_string,
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user