FIX: show error message if user already exist in group

This commit is contained in:
Arpit Jalan 2015-04-15 13:36:54 +05:30
parent 9191fbe9fb
commit 499bed69e2
4 changed files with 22 additions and 1 deletions

View file

@ -52,6 +52,12 @@ const Group = Discourse.Model.extend({
}).then(function() {
// reload member list
self.findMembers();
}).catch(function(error) {
if (error && error.responseText) {
bootbox.alert($.parseJSON(error.responseText).errors[0]);
} else {
bootbox.alert(I18n.t('generic_error'));
}
});
},

View file

@ -83,7 +83,11 @@ class Admin::GroupsController < Admin::AdminController
end
users.each do |user|
group.add(user)
if !group.users.include?(user)
group.add(user)
else
return render_json_error I18n.t('groups.errors.member_already_exist', username: user.username)
end
end
if group.save

View file

@ -180,6 +180,7 @@ en:
groups:
errors:
can_not_modify_automatic: "You can not modify an automatic group"
member_already_exist: "'%{username}' is already a member of this group."
default_names:
everyone: "everyone"
admins: "admins"

View file

@ -136,6 +136,16 @@ describe Admin::GroupsController do
end
end
it "returns 422 if member already exists" do
group = Fabricate(:group)
existing_member = Fabricate(:user)
group.add(existing_member)
group.save
xhr :put, :add_members, id: group.id, usernames: existing_member.username
expect(response.status).to eq(422)
end
end
context ".remove_member" do