FIX: lowercase username for add/rem group members
This fix searches for users based on the downcased username so that if you pass in usernames to add/remove from a group and you don't have the casing just right it will still find the correct users. I updated the tests to add a username that has a mix of upper and lowercase letters to verify this functionality.
This commit is contained in:
parent
3973823a33
commit
93485facaf
|
@ -484,7 +484,7 @@ class GroupsController < ApplicationController
|
||||||
|
|
||||||
def users_from_params
|
def users_from_params
|
||||||
if params[:usernames].present?
|
if params[:usernames].present?
|
||||||
users = User.where(username: params[:usernames].split(","))
|
users = User.where(username_lower: params[:usernames].split(",").map(&:downcase))
|
||||||
raise Discourse::InvalidParameters.new(:usernames) if users.blank?
|
raise Discourse::InvalidParameters.new(:usernames) if users.blank?
|
||||||
elsif params[:user_ids].present?
|
elsif params[:user_ids].present?
|
||||||
users = User.where(id: params[:user_ids].split(","))
|
users = User.where(id: params[:user_ids].split(","))
|
||||||
|
|
|
@ -856,7 +856,7 @@ describe GroupsController do
|
||||||
|
|
||||||
context "is able to add several members to a group" do
|
context "is able to add several members to a group" do
|
||||||
let(:user1) { Fabricate(:user) }
|
let(:user1) { Fabricate(:user) }
|
||||||
let(:user2) { Fabricate(:user) }
|
let(:user2) { Fabricate(:user, username: "UsEr2") }
|
||||||
|
|
||||||
it "adds by username" do
|
it "adds by username" do
|
||||||
expect do
|
expect do
|
||||||
|
@ -1069,7 +1069,7 @@ describe GroupsController do
|
||||||
context '#remove_members' do
|
context '#remove_members' do
|
||||||
context "is able to remove several members from a group" do
|
context "is able to remove several members from a group" do
|
||||||
let(:user1) { Fabricate(:user) }
|
let(:user1) { Fabricate(:user) }
|
||||||
let(:user2) { Fabricate(:user) }
|
let(:user2) { Fabricate(:user, username: "UsEr2") }
|
||||||
let(:group1) { Fabricate(:group, users: [user1, user2]) }
|
let(:group1) { Fabricate(:group, users: [user1, user2]) }
|
||||||
|
|
||||||
it "removes by username" do
|
it "removes by username" do
|
||||||
|
|
Loading…
Reference in New Issue