mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: Transaction in UserAnonymizer prevented avatar from updating
This commit is contained in:
@@ -5,6 +5,7 @@ module Jobs
|
|||||||
@user_id = args[:user_id]
|
@user_id = args[:user_id]
|
||||||
@old_username = args[:old_username]
|
@old_username = args[:old_username]
|
||||||
@new_username = args[:new_username]
|
@new_username = args[:new_username]
|
||||||
|
@avatar_img = PrettyText.avatar_img(args[:avatar_template], "tiny")
|
||||||
|
|
||||||
@raw_mention_regex = /(?:(?<![\w`_])|(?<=_))@#{@old_username}(?:(?![\w\-\.])|(?=[\-\.](?:\s|$)))/i
|
@raw_mention_regex = /(?:(?<![\w`_])|(?<=_))@#{@old_username}(?:(?![\w\-\.])|(?=[\-\.](?:\s|$)))/i
|
||||||
@raw_quote_regex = /(\[quote\s*=\s*["'']?)#{@old_username}(\,?[^\]]*\])/i
|
@raw_quote_regex = /(\[quote\s*=\s*["'']?)#{@old_username}(\,?[^\]]*\])/i
|
||||||
@@ -131,14 +132,10 @@ module Jobs
|
|||||||
div.children.each do |child|
|
div.children.each do |child|
|
||||||
child.content = child.content.gsub(@cooked_quote_username_regex, @new_username) if child.text?
|
child.content = child.content.gsub(@cooked_quote_username_regex, @new_username) if child.text?
|
||||||
end
|
end
|
||||||
div.at_css("img.avatar")&.replace(avatar_img)
|
div.at_css("img.avatar")&.replace(@avatar_img)
|
||||||
end
|
end
|
||||||
|
|
||||||
doc.to_html
|
doc.to_html
|
||||||
end
|
end
|
||||||
|
|
||||||
def avatar_img
|
|
||||||
@avatar_img ||= PrettyText.avatar_img(User.find_by_id(@user_id).avatar_template, "tiny")
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -26,7 +26,8 @@ class UserMerger
|
|||||||
def update_username
|
def update_username
|
||||||
Jobs::UpdateUsername.new.execute(user_id: @source_user.id,
|
Jobs::UpdateUsername.new.execute(user_id: @source_user.id,
|
||||||
old_username: @source_user.username,
|
old_username: @source_user.username,
|
||||||
new_username: @target_user.username)
|
new_username: @target_user.username,
|
||||||
|
avatar_template: @target_user.avatar_template)
|
||||||
end
|
end
|
||||||
|
|
||||||
def move_posts
|
def move_posts
|
||||||
|
|||||||
@@ -24,7 +24,8 @@ class UsernameChanger
|
|||||||
args = {
|
args = {
|
||||||
user_id: @user.id,
|
user_id: @user.id,
|
||||||
old_username: @old_username,
|
old_username: @old_username,
|
||||||
new_username: @new_username
|
new_username: @new_username,
|
||||||
|
avatar_template: @user.avatar_template
|
||||||
}
|
}
|
||||||
|
|
||||||
if asynchronous
|
if asynchronous
|
||||||
|
|||||||
@@ -1009,7 +1009,10 @@ describe UserMerger do
|
|||||||
it "updates the username" do
|
it "updates the username" do
|
||||||
Jobs::UpdateUsername.any_instance
|
Jobs::UpdateUsername.any_instance
|
||||||
.expects(:execute)
|
.expects(:execute)
|
||||||
.with(user_id: source_user.id, old_username: 'alice1', new_username: 'alice')
|
.with(user_id: source_user.id,
|
||||||
|
old_username: 'alice1',
|
||||||
|
new_username: 'alice',
|
||||||
|
avatar_template: target_user.avatar_template)
|
||||||
.once
|
.once
|
||||||
|
|
||||||
merge_users!
|
merge_users!
|
||||||
|
|||||||
Reference in New Issue
Block a user