FIX: Error when trying to bump a topic with no category (#21207)

When revising a post, if the topic that post belonged to did not have a category attached it would error with 

> NoMethodError (undefined method `read_restricted' for nil:NilClass)
This commit is contained in:
Isaac Janzen 2023-04-24 09:28:10 -05:00 committed by GitHub
parent 26b7f8a63b
commit 599979902e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 0 deletions

View File

@ -579,6 +579,8 @@ class TopicTrackingState
def self.secure_category_group_ids(topic) def self.secure_category_group_ids(topic)
category = topic.category category = topic.category
return [Group::AUTO_GROUPS[:admins]] if category.nil?
if category.read_restricted if category.read_restricted
ids = [Group::AUTO_GROUPS[:admins]] ids = [Group::AUTO_GROUPS[:admins]]
ids.push(*category.secure_group_ids) ids.push(*category.secure_group_ids)

View File

@ -422,6 +422,20 @@ RSpec.describe PostRevisor do
}.to change { post.topic.bumped_at } }.to change { post.topic.bumped_at }
end end
it "should bump topic when no topic category" do
topic_with_no_category = Fabricate(:topic, category_id: nil)
post_from_topic_with_no_category = Fabricate(:post, topic: topic_with_no_category)
expect {
result =
subject.revise!(
Fabricate(:admin),
raw: post_from_topic_with_no_category.raw,
tags: ["foo"],
)
expect(result).to eq(true)
}.to change { topic.reload.bumped_at }
end
it "should send muted and latest message" do it "should send muted and latest message" do
TopicUser.create!(topic: post.topic, user: post.user, notification_level: 0) TopicUser.create!(topic: post.topic, user: post.user, notification_level: 0)
messages = messages =