diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb index c440d630f55..4830b3b9795 100644 --- a/app/controllers/posts_controller.rb +++ b/app/controllers/posts_controller.rb @@ -747,8 +747,8 @@ class PostsController < ApplicationController end if recipients - recipients = recipients.split(",") - groups = Group.messageable(current_user).where('name in (?)', recipients).pluck('name') + recipients = recipients.split(",").map(&:downcase) + groups = Group.messageable(current_user).where('lower(name) in (?)', recipients).pluck('name') recipients -= groups emails = recipients.select { |user| user.match(/@/) } recipients -= emails diff --git a/lib/topic_creator.rb b/lib/topic_creator.rb index 41558784f34..d86f1c461ae 100644 --- a/lib/topic_creator.rb +++ b/lib/topic_creator.rb @@ -208,10 +208,10 @@ class TopicCreator def add_users(topic, usernames) return unless usernames - names = usernames.split(',').flatten + names = usernames.split(',').flatten.map(&:downcase) len = 0 - User.includes(:user_option).where(username: names).find_each do |user| + User.includes(:user_option).where('lower(username) in (?)', names).find_each do |user| check_can_send_permission!(topic, user) @added_users << user topic.topic_allowed_users.build(user_id: user.id) diff --git a/spec/requests/posts_controller_spec.rb b/spec/requests/posts_controller_spec.rb index ff355ada967..910cb5b95df 100644 --- a/spec/requests/posts_controller_spec.rb +++ b/spec/requests/posts_controller_spec.rb @@ -825,7 +825,7 @@ describe PostsController do post "/posts.json", params: { raw: 'I can haz a test', title: 'I loves my test', - target_recipients: group.name, + target_recipients: "test_Group", archetype: Archetype.private_message } @@ -965,13 +965,13 @@ describe PostsController do it 'creates a private post' do user_2 = Fabricate(:user) - user_3 = Fabricate(:user) + user_3 = Fabricate(:user, username: "foo_bar") post "/posts.json", params: { raw: 'this is the test content', archetype: 'private_message', title: "this is some post", - target_recipients: "#{user_2.username},#{user_3.username}" + target_recipients: "#{user_2.username},Foo_Bar" } expect(response.status).to eq(200)