summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG2
-rw-r--r--app/controllers/admin/abuse_reports_controller.rb2
-rw-r--r--app/models/abuse_report.rb4
-rw-r--r--app/services/delete_user_service.rb2
-rw-r--r--spec/models/abuse_report_spec.rb7
-rw-r--r--spec/workers/delete_user_worker_spec.rb2
6 files changed, 10 insertions, 9 deletions
diff --git a/CHANGELOG b/CHANGELOG
index ee9d3cebf49..fd7c7e7bc97 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -39,6 +39,7 @@ v 8.6.0 (unreleased)
- Add ability to show archived projects on dashboard, explore and group pages
- Move group activity to separate page
- Continue parameters are checked to ensure redirection goes to the same instance
+ - User deletion is now done in the background so the request can not time out
v 8.5.6
- Obtain a lease before querying LDAP
@@ -60,7 +61,6 @@ v 8.5.3
- Show commit message in JIRA mention comment
- Makes issue page and merge request page usable on mobile browsers.
- Improved UI for profile settings
- - User deletion is now done in the background so the request can not time out
v 8.5.2
- Fix sidebar overlapping content when screen width was below 1200px
diff --git a/app/controllers/admin/abuse_reports_controller.rb b/app/controllers/admin/abuse_reports_controller.rb
index a3f78e34776..e9b0972bdd8 100644
--- a/app/controllers/admin/abuse_reports_controller.rb
+++ b/app/controllers/admin/abuse_reports_controller.rb
@@ -6,7 +6,7 @@ class Admin::AbuseReportsController < Admin::ApplicationController
def destroy
abuse_report = AbuseReport.find(params[:id])
- abuse_report.remove_user(current_user) if params[:remove_user]
+ abuse_report.remove_user(deleted_by: current_user) if params[:remove_user]
abuse_report.destroy
render nothing: true
diff --git a/app/models/abuse_report.rb b/app/models/abuse_report.rb
index 155b5f327cb..b61f5123127 100644
--- a/app/models/abuse_report.rb
+++ b/app/models/abuse_report.rb
@@ -19,9 +19,9 @@ class AbuseReport < ActiveRecord::Base
validates :message, presence: true
validates :user_id, uniqueness: { message: 'has already been reported' }
- def remove_user(current_user)
+ def remove_user(deleted_by:)
user.block
- DeleteUserWorker.perform_async(current_user.id, user.id, force: true)
+ DeleteUserWorker.perform_async(deleted_by.id, user.id, delete_solo_owned_groups: true)
end
def notify
diff --git a/app/services/delete_user_service.rb b/app/services/delete_user_service.rb
index 5f2e4f75b79..ce79287e35a 100644
--- a/app/services/delete_user_service.rb
+++ b/app/services/delete_user_service.rb
@@ -6,7 +6,7 @@ class DeleteUserService
end
def execute(user, options = {})
- if !options[:force] && user.solo_owned_groups.present?
+ if !options[:delete_solo_owned_groups] && user.solo_owned_groups.present?
user.errors[:base] << 'You must transfer ownership or delete groups before you can remove user'
return user
end
diff --git a/spec/models/abuse_report_spec.rb b/spec/models/abuse_report_spec.rb
index 8d16239bcb1..ac12ab6c757 100644
--- a/spec/models/abuse_report_spec.rb
+++ b/spec/models/abuse_report_spec.rb
@@ -32,13 +32,14 @@ RSpec.describe AbuseReport, type: :model do
describe '#remove_user' do
it 'blocks the user' do
- expect { subject.remove_user(user) }.to change { subject.user.blocked? }.to(true)
+ expect { subject.remove_user(deleted_by: user) }.to change { subject.user.blocked? }.to(true)
end
it 'lets a worker delete the user' do
- expect(DeleteUserWorker).to receive(:perform_async).with(user.id, subject.user.id, force: true)
+ expect(DeleteUserWorker).to receive(:perform_async).with(user.id, subject.user.id,
+ delete_solo_owned_groups: true)
- subject.remove_user(user)
+ subject.remove_user(deleted_by: user)
end
end
diff --git a/spec/workers/delete_user_worker_spec.rb b/spec/workers/delete_user_worker_spec.rb
index a98ce6e5999..975b0470cb5 100644
--- a/spec/workers/delete_user_worker_spec.rb
+++ b/spec/workers/delete_user_worker_spec.rb
@@ -43,7 +43,7 @@ describe DeleteUserWorker do
before do
solo_owned.group_members = [member]
- DeleteUserWorker.new.perform(current_user.id, user.id, "force" => true)
+ DeleteUserWorker.new.perform(current_user.id, user.id, "delete_solo_owned_groups" => true)
end
it 'deletes solo owned groups' do