diff --git a/app/services/user_updater.rb b/app/services/user_updater.rb index 30d6d46e915..5b3396f1017 100644 --- a/app/services/user_updater.rb +++ b/app/services/user_updater.rb @@ -90,6 +90,7 @@ class UserUpdater user.primary_group_id = attributes[:primary_group_id] elsif SiteSetting.user_selected_primary_groups && + attributes[:primary_group_id] && attributes[:primary_group_id].blank? user.primary_group_id = nil diff --git a/spec/services/user_updater_spec.rb b/spec/services/user_updater_spec.rb index 850de547fc3..5ca012fc135 100644 --- a/spec/services/user_updater_spec.rb +++ b/spec/services/user_updater_spec.rb @@ -273,6 +273,16 @@ describe UserUpdater do expect(user.primary_group_id).to eq nil end + it 'does not update when changing other profile data' do + SiteSetting.user_selected_primary_groups = true + user.groups << new_group + user.update(primary_group_id: new_group.id) + UserUpdater.new(acting_user, user).update(website: 'http://example.com') + + user.reload + expect(user.primary_group_id).to eq new_group.id + end + it 'can be removed by the user when setting is enabled' do SiteSetting.user_selected_primary_groups = true user.groups << new_group