Commit 8077a5f9 authored by Zeger-Jan van de Weg's avatar Zeger-Jan van de Weg

Clearify who deletes the user

parent a09323c9
...@@ -39,6 +39,7 @@ v 8.6.0 (unreleased) ...@@ -39,6 +39,7 @@ v 8.6.0 (unreleased)
- Add ability to show archived projects on dashboard, explore and group pages - Add ability to show archived projects on dashboard, explore and group pages
- Move group activity to separate page - Move group activity to separate page
- Continue parameters are checked to ensure redirection goes to the same instance - 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 v 8.5.6
- Obtain a lease before querying LDAP - Obtain a lease before querying LDAP
...@@ -60,7 +61,6 @@ v 8.5.3 ...@@ -60,7 +61,6 @@ v 8.5.3
- Show commit message in JIRA mention comment - Show commit message in JIRA mention comment
- Makes issue page and merge request page usable on mobile browsers. - Makes issue page and merge request page usable on mobile browsers.
- Improved UI for profile settings - Improved UI for profile settings
- User deletion is now done in the background so the request can not time out
v 8.5.2 v 8.5.2
- Fix sidebar overlapping content when screen width was below 1200px - Fix sidebar overlapping content when screen width was below 1200px
......
...@@ -6,7 +6,7 @@ class Admin::AbuseReportsController < Admin::ApplicationController ...@@ -6,7 +6,7 @@ class Admin::AbuseReportsController < Admin::ApplicationController
def destroy def destroy
abuse_report = AbuseReport.find(params[:id]) 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 abuse_report.destroy
render nothing: true render nothing: true
......
...@@ -19,9 +19,9 @@ class AbuseReport < ActiveRecord::Base ...@@ -19,9 +19,9 @@ class AbuseReport < ActiveRecord::Base
validates :message, presence: true validates :message, presence: true
validates :user_id, uniqueness: { message: 'has already been reported' } validates :user_id, uniqueness: { message: 'has already been reported' }
def remove_user(current_user) def remove_user(deleted_by:)
user.block 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 end
def notify def notify
......
...@@ -6,7 +6,7 @@ class DeleteUserService ...@@ -6,7 +6,7 @@ class DeleteUserService
end end
def execute(user, options = {}) 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' user.errors[:base] << 'You must transfer ownership or delete groups before you can remove user'
return user return user
end end
......
...@@ -32,13 +32,14 @@ RSpec.describe AbuseReport, type: :model do ...@@ -32,13 +32,14 @@ RSpec.describe AbuseReport, type: :model do
describe '#remove_user' do describe '#remove_user' do
it 'blocks the 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 end
it 'lets a worker delete the user' do 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
end end
......
...@@ -43,7 +43,7 @@ describe DeleteUserWorker do ...@@ -43,7 +43,7 @@ describe DeleteUserWorker do
before do before do
solo_owned.group_members = [member] 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 end
it 'deletes solo owned groups' do it 'deletes solo owned groups' do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment