mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 18:11:11 +08:00
add a way to delete posts and topics when deleting a user with UserDestroyer
This commit is contained in:
@ -117,10 +117,14 @@ class Admin::UsersController < Admin::AdminController
|
||||
def destroy
|
||||
user = User.where(id: params[:id]).first
|
||||
guardian.ensure_can_delete_user!(user)
|
||||
if UserDestroyer.new(current_user).destroy(user)
|
||||
render json: {deleted: true}
|
||||
else
|
||||
render json: {deleted: false, user: AdminDetailedUserSerializer.new(user, root: false).as_json}
|
||||
begin
|
||||
if UserDestroyer.new(current_user).destroy(user, params.slice(:delete_posts))
|
||||
render json: {deleted: true}
|
||||
else
|
||||
render json: {deleted: false, user: AdminDetailedUserSerializer.new(user, root: false).as_json}
|
||||
end
|
||||
rescue UserDestroyer::PostsExistError
|
||||
raise Discourse::InvalidAccess.new("User #{user.username} has #{user.post_count} posts, so can't be deleted.")
|
||||
end
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user