DEV: improve code readability & add tests for user guardian.

a511bea4cc3f50bd1e067a46bdbf5cd19eb335a3
This commit is contained in:
Vinoth Kannan
2020-04-30 20:59:33 +05:30
parent c092370847
commit 71241a50f7
8 changed files with 62 additions and 30 deletions

View File

@ -475,13 +475,16 @@ class Admin::UsersController < Admin::AdminController
def merge
target_username = params.require(:target_username)
target_user = User.find_by_username(target_username)
raise Discourse::NotFound if target_user.blank?
guardian.ensure_can_merge_users!(@user, target_user)
serializer_opts = { root: false, scope: guardian }
if user = UserMerger.new(@user, target_user, current_user).merge!
render json: success_json.merge(merged: true, user: user)
user_json = AdminDetailedUserSerializer.new(user, serializer_opts).as_json
render json: success_json.merge(merged: true, user: user_json)
else
render json: failed_json.merge(user: AdminDetailedUserSerializer.new(@user, root: false).as_json)
render json: failed_json.merge(user: AdminDetailedUserSerializer.new(@user, serializer_opts).as_json)
end
end