Skip to content
Snippets Groups Projects
Commit d5ed8a42 authored by Stan Hu's avatar Stan Hu
Browse files

Fix error when deleting a user who has projects

parent 93ba5b90
No related branches found
No related tags found
No related merge requests found
Please view this file on the master branch, on stable branches it's out of date.
 
v 7.13.0 (unreleased)
- Fix error when deleting a user who has projects (Stan Hu)
- Update maintenance documentation to explain no need to recompile asssets for omnibus installations (Stan Hu)
- Support commenting on diffs in side-by-side mode (Stan Hu)
- Fix JavaScript error when clicking on the comment button on a diff line that has a comment already (Stan Hu)
Loading
Loading
Loading
Loading
@@ -86,7 +86,7 @@ class Admin::UsersController < Admin::ApplicationController
end
 
def destroy
DeleteUserService.new.execute(user)
DeleteUserService.new(current_user).execute(user)
 
respond_to do |format|
format.html { redirect_to admin_users_path }
Loading
Loading
Loading
Loading
@@ -6,7 +6,7 @@ class RegistrationsController < Devise::RegistrationsController
end
 
def destroy
DeleteUserService.new.execute(current_user)
DeleteUserService.new(current_user).execute(current_user)
 
respond_to do |format|
format.html { redirect_to new_user_session_path, notice: "Account successfully removed." }
Loading
Loading
class DeleteUserService
attr_accessor :current_user
def initialize(current_user)
@current_user = current_user
end
def execute(user)
if user.solo_owned_groups.present?
user.errors[:base] << 'You must transfer ownership or delete groups before you can remove user'
Loading
Loading
Loading
Loading
@@ -194,7 +194,7 @@ module API
user = User.find_by(id: params[:id])
 
if user
DeleteUserService.new.execute(user)
DeleteUserService.new(current_user).execute(user)
else
not_found!('User')
end
Loading
Loading
require 'spec_helper'
describe Admin::UsersController do
let(:admin) { create(:admin) }
before do
sign_in(admin)
end
describe 'DELETE #user with projects' do
let(:user) { create(:user) }
let(:project) { create(:project, namespace: user.namespace) }
before do
project.team << [user, :developer]
end
it 'deletes user' do
delete :destroy, id: user.username, format: :json
expect(response.status).to eq(200)
expect { User.find(user.id) }.to raise_exception(ActiveRecord::RecordNotFound)
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment