Navigation Menu

Skip to content

Commit

Permalink
FIX: removing a group from a user was not removing primary group
Browse files Browse the repository at this point in the history
  • Loading branch information
SamSaffron committed Feb 9, 2015
1 parent 4a5d79a commit e8323fa
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 1 deletion.
5 changes: 4 additions & 1 deletion app/controllers/admin/groups_controller.rb
Expand Up @@ -93,9 +93,12 @@ def remove_member

return can_not_modify_automatic if group.automatic

user = User.find(user_id)
user.primary_group_id = nil if user.primary_group_id == group.id

group.users.delete(user_id)

if group.save
if group.save && user.save
render json: success_json
else
render_json_error(group)
Expand Down
1 change: 1 addition & 0 deletions app/models/group.rb
Expand Up @@ -279,6 +279,7 @@ def add(user)

def remove(user)
self.group_users.where(user: user).each(&:destroy)
user.update_columns(primary_group_id: nil) if user.primary_group_id == self.id
end

def appoint_manager(user)
Expand Down
6 changes: 6 additions & 0 deletions spec/controllers/admin/groups_controller_spec.rb
Expand Up @@ -137,11 +137,17 @@
group.add(user)
group.save

user.primary_group_id = group.id
user.save

xhr :delete, :remove_member, id: group.id, user_id: user.id

expect(response).to be_success
group.reload
expect(group.users.count).to eq(0)

user.reload
expect(user.primary_group_id).to eq(nil)
end

end
Expand Down
18 changes: 18 additions & 0 deletions spec/models/group_spec.rb
Expand Up @@ -47,6 +47,24 @@ def real_staff
Group[:staff].user_ids - [-1]
end

it "Correctly handles primary group" do
group = Fabricate(:group)
user = Fabricate(:user)
group.add(user)
group.save

user.primary_group = group
user.save

group.reload

group.remove(user)
group.save

user.reload
expect(user.primary_group).to eq nil
end

it "Can update moderator/staff/admin groups correctly" do

admin = Fabricate(:admin)
Expand Down

0 comments on commit e8323fa

Please sign in to comment.