Commit d20db103c1e187a324990c1b9f1d202f90ae5301

Authored by Dmitriy Zaporozhets
2 parents eda5b3b1 97cf31c4

Merge branch 'readding_group_member' of /home/git/repositories/gitlab/gitlabhq

Showing 2 changed files with 14 additions and 1 deletions   Show diff stats
app/models/group.rb
@@ -26,7 +26,8 @@ class Group < Namespace @@ -26,7 +26,8 @@ class Group < Namespace
26 26
27 def add_users(user_ids, group_access) 27 def add_users(user_ids, group_access)
28 user_ids.compact.each do |user_id| 28 user_ids.compact.each do |user_id|
29 - self.users_groups.create(user_id: user_id, group_access: group_access) 29 + user = self.users_groups.find_or_initialize_by_user_id(user_id)
  30 + user.update_attributes(group_access: group_access)
30 end 31 end
31 end 32 end
32 33
spec/models/group_spec.rb
@@ -42,4 +42,16 @@ describe Group do @@ -42,4 +42,16 @@ describe Group do
42 42
43 it { group.users_groups.masters.map(&:user).should include(user) } 43 it { group.users_groups.masters.map(&:user).should include(user) }
44 end 44 end
  45 +
  46 + describe :add_users do
  47 + let(:user) { create(:user) }
  48 + before { group.add_users([user.id], UsersGroup::GUEST) }
  49 +
  50 + it "should update the group permission" do
  51 + group.users_groups.guests.map(&:user).should include(user)
  52 + group.add_users([user.id], UsersGroup::DEVELOPER)
  53 + group.users_groups.developers.map(&:user).should include(user)
  54 + group.users_groups.guests.map(&:user).should_not include(user)
  55 + end
  56 + end
45 end 57 end