FIX: categories created by users who are deleted cannot be deleted
This commit is contained in:
parent
7a567d730d
commit
e679ba97a3
|
@ -42,6 +42,19 @@ class UserDestroyer
|
||||||
b.record_match! if b
|
b.record_match! if b
|
||||||
end
|
end
|
||||||
Post.with_deleted.where(user_id: user.id).update_all("user_id = NULL")
|
Post.with_deleted.where(user_id: user.id).update_all("user_id = NULL")
|
||||||
|
|
||||||
|
# If this user created categories, fix those up:
|
||||||
|
categories = Category.where(user_id: user.id).all
|
||||||
|
categories.each do |c|
|
||||||
|
c.user_id = Discourse.system_user.id
|
||||||
|
c.save!
|
||||||
|
if topic = Topic.with_deleted.where(id: c.topic_id).first
|
||||||
|
topic.try(:recover!)
|
||||||
|
topic.user_id = Discourse.system_user.id
|
||||||
|
topic.save!
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
StaffActionLogger.new(@staff).log_user_deletion(user, opts.slice(:context))
|
StaffActionLogger.new(@staff).log_user_deletion(user, opts.slice(:context))
|
||||||
DiscourseHub.unregister_nickname(user.username) if SiteSetting.call_discourse_hub?
|
DiscourseHub.unregister_nickname(user.username) if SiteSetting.call_discourse_hub?
|
||||||
MessageBus.publish "/file-change", ["refresh"], user_ids: [user.id]
|
MessageBus.publish "/file-change", ["refresh"], user_ids: [user.id]
|
||||||
|
|
|
@ -238,6 +238,17 @@ describe UserDestroyer do
|
||||||
UserDestroyer.new(@admin).destroy(@user, {block_ip: true})
|
UserDestroyer.new(@admin).destroy(@user, {block_ip: true})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'user created a category' do
|
||||||
|
let!(:category) { Fabricate(:category, user: @user) }
|
||||||
|
|
||||||
|
it "assigns the system user to the categories" do
|
||||||
|
UserDestroyer.new(@admin).destroy(@user, {delete_posts: true})
|
||||||
|
category.reload.user_id.should == Discourse.system_user.id
|
||||||
|
category.topic.should be_present
|
||||||
|
category.topic.user_id.should == Discourse.system_user.id
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue