FIX: Ensure poll extraction is not attempted if post body is absent (#19718)

Since the poll post handler runs very early in the post creation
process, it's possible to run the handler on an obiviously invalid post.

This change ensures the post's `raw` value is present  before
proceeding.
This commit is contained in:
Selase Krakani
2023-01-13 01:47:44 +00:00
committed by GitHub
parent 73ec80893d
commit 55bdab2b3b
2 changed files with 30 additions and 0 deletions

View File

@ -306,6 +306,10 @@ class DiscoursePoll::Poll
end
def self.extract(raw, topic_id, user_id = nil)
# Poll Post handlers get called very early in the post
# creation process. `raw` could be nil here.
return [] if raw.blank?
# TODO: we should fix the callback mess so that the cooked version is available
# in the validators instead of cooking twice
raw = raw.sub(%r{\[quote.+/quote\]}m, "")