From dcf9c6da59910d4b944e6ec8865f268ba4d0a7f2 Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Thu, 6 Dec 2018 08:20:36 +0800 Subject: [PATCH] DEV: Don't publish post messages to non-human users. --- app/models/post.rb | 6 ++++-- plugins/poll/spec/controllers/polls_controller_spec.rb | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/models/post.rb b/app/models/post.rb index 6ea6765c074..42434c7375a 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -175,13 +175,15 @@ class Post < ActiveRecord::Base if Topic.visible_post_types.include?(post_type) if topic.private_message? - opts[:user_ids] = User.where("admin OR moderator").pluck(:id) + opts[:user_ids] = User.human_users.where("admin OR moderator").pluck(:id) opts[:user_ids] |= topic.allowed_users.pluck(:id) else opts[:group_ids] = topic.secure_group_ids end else - opts[:user_ids] = User.where("admin OR moderator OR id = ?", user_id).pluck(:id) + opts[:user_ids] = User.human_users + .where("admin OR moderator OR id = ?", user_id) + .pluck(:id) end MessageBus.publish(channel, message, opts) diff --git a/plugins/poll/spec/controllers/polls_controller_spec.rb b/plugins/poll/spec/controllers/polls_controller_spec.rb index fb4fe5e3458..6e0826232dd 100644 --- a/plugins/poll/spec/controllers/polls_controller_spec.rb +++ b/plugins/poll/spec/controllers/polls_controller_spec.rb @@ -53,7 +53,7 @@ describe ::DiscoursePoll::PollsController do expect(json["vote"]).to eq(["5c24fc1df56d764b550ceae1b9319125"]) expect(message.channel).to eq("/polls/#{poll.topic_id}") - expect(message.user_ids).to contain_exactly(-2, -1, user.id, user2.id) + expect(message.user_ids).to contain_exactly(user.id, user2.id) expect(message.group_ids).to eq(nil) end