mirror of
https://github.com/discourse/discourse.git
synced 2025-05-25 19:29:34 +08:00
UX: when deleting a user, show a modal indicating that the delete is happening. User hijack so requests don't time out.
This commit is contained in:
@ -46,10 +46,12 @@ class Admin::UsersController < Admin::AdminController
|
||||
end
|
||||
|
||||
def delete_all_posts
|
||||
@user = User.find_by(id: params[:user_id])
|
||||
@user.delete_all_posts!(guardian)
|
||||
# staff action logs will have an entry for each post
|
||||
render body: nil
|
||||
hijack do
|
||||
user = User.find_by(id: params[:user_id])
|
||||
user.delete_all_posts!(guardian)
|
||||
# staff action logs will have an entry for each post
|
||||
render body: nil
|
||||
end
|
||||
end
|
||||
|
||||
def suspend
|
||||
@ -362,20 +364,23 @@ class Admin::UsersController < Admin::AdminController
|
||||
def destroy
|
||||
user = User.find_by(id: params[:id].to_i)
|
||||
guardian.ensure_can_delete_user!(user)
|
||||
begin
|
||||
options = params.slice(:block_email, :block_urls, :block_ip, :context, :delete_as_spammer)
|
||||
options[:delete_posts] = ActiveModel::Type::Boolean.new.cast(params[:delete_posts])
|
||||
|
||||
if UserDestroyer.new(current_user).destroy(user, options)
|
||||
render json: { deleted: true }
|
||||
else
|
||||
render json: {
|
||||
deleted: false,
|
||||
user: AdminDetailedUserSerializer.new(user, root: false).as_json
|
||||
}
|
||||
options = params.slice(:block_email, :block_urls, :block_ip, :context, :delete_as_spammer)
|
||||
options[:delete_posts] = ActiveModel::Type::Boolean.new.cast(params[:delete_posts])
|
||||
|
||||
hijack do
|
||||
begin
|
||||
if UserDestroyer.new(current_user).destroy(user, options)
|
||||
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
|
||||
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