mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: Anonymizing user didn't replace uploaded avatar in posts
This commit is contained in:
@@ -20,6 +20,7 @@ class UserAnonymizer
|
|||||||
@prev_email = @user.email
|
@prev_email = @user.email
|
||||||
@prev_username = @user.username
|
@prev_username = @user.username
|
||||||
|
|
||||||
|
@user.update_attribute(:uploaded_avatar_id, nil)
|
||||||
raise "Failed to change username" unless UsernameChanger.change(@user, make_anon_username)
|
raise "Failed to change username" unless UsernameChanger.change(@user, make_anon_username)
|
||||||
|
|
||||||
@user.reload
|
@user.reload
|
||||||
@@ -28,7 +29,6 @@ class UserAnonymizer
|
|||||||
@user.name = SiteSetting.full_name_required ? @user.username : nil
|
@user.name = SiteSetting.full_name_required ? @user.username : nil
|
||||||
@user.date_of_birth = nil
|
@user.date_of_birth = nil
|
||||||
@user.title = nil
|
@user.title = nil
|
||||||
@user.uploaded_avatar_id = nil
|
|
||||||
|
|
||||||
anonymize_ips(@opts[:anonymize_ip]) if @opts.has_key?(:anonymize_ip)
|
anonymize_ips(@opts[:anonymize_ip]) if @opts.has_key?(:anonymize_ip)
|
||||||
|
|
||||||
|
|||||||
@@ -119,6 +119,33 @@ describe UserAnonymizer do
|
|||||||
expect(user.uploaded_avatar_id).to eq(nil)
|
expect(user.uploaded_avatar_id).to eq(nil)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "updates the avatar in posts" do
|
||||||
|
upload = Fabricate(:upload, user: user)
|
||||||
|
user.user_avatar = UserAvatar.new(user_id: user.id, custom_upload_id: upload.id)
|
||||||
|
user.uploaded_avatar_id = upload.id # chosen in user preferences
|
||||||
|
user.save!
|
||||||
|
|
||||||
|
topic = Fabricate(:topic, user: user)
|
||||||
|
quoted_post = create_post(user: user, topic: topic, post_number: 1, raw: "quoted post")
|
||||||
|
post = create_post(raw: <<~RAW)
|
||||||
|
Lorem ipsum
|
||||||
|
|
||||||
|
[quote="#{quoted_post.username}, post:1, topic:#{quoted_post.topic.id}"]
|
||||||
|
quoted post
|
||||||
|
[/quote]
|
||||||
|
RAW
|
||||||
|
|
||||||
|
old_avatar_url = user.avatar_template.gsub("{size}", "40")
|
||||||
|
expect(post.cooked).to include(old_avatar_url)
|
||||||
|
|
||||||
|
make_anonymous
|
||||||
|
post.reload
|
||||||
|
new_avatar_url = user.reload.avatar_template.gsub("{size}", "40")
|
||||||
|
|
||||||
|
expect(post.cooked).to_not include(old_avatar_url)
|
||||||
|
expect(post.cooked).to include(new_avatar_url)
|
||||||
|
end
|
||||||
|
|
||||||
it "logs the action with the original details" do
|
it "logs the action with the original details" do
|
||||||
SiteSetting.log_anonymizer_details = true
|
SiteSetting.log_anonymizer_details = true
|
||||||
helper = UserAnonymizer.new(user, admin)
|
helper = UserAnonymizer.new(user, admin)
|
||||||
|
|||||||
Reference in New Issue
Block a user