Fix #4383: Save and display deleted usernames for mods+.
Name changes for deleted users are already visible to mods, so the only thing we need to do here is to generate a name change before the user is deleted.
This commit is contained in:
@@ -57,8 +57,8 @@ class UserDeletion
|
||||
raise ValidationError.new("New name could not be found")
|
||||
end
|
||||
|
||||
user.name = name
|
||||
user.save!
|
||||
request = UserNameChangeRequest.new(user: user, desired_name: name, original_name: user.name)
|
||||
request.save!(validate: false) # XXX don't validate so that the 1 name change per week rule doesn't interfere
|
||||
end
|
||||
|
||||
def validate
|
||||
|
||||
@@ -27,7 +27,7 @@ class UserDeletionTest < ActiveSupport::TestCase
|
||||
|
||||
context "a valid user deletion" do
|
||||
setup do
|
||||
@user = create(:user, email_address: build(:email_address))
|
||||
@user = create(:user, name: "foo", email_address: build(:email_address))
|
||||
@deletion = UserDeletion.new(@user, "password")
|
||||
end
|
||||
|
||||
@@ -41,6 +41,15 @@ class UserDeletionTest < ActiveSupport::TestCase
|
||||
assert_equal("user_#{@user.id}", @user.reload.name)
|
||||
end
|
||||
|
||||
should "generate a user name change request" do
|
||||
assert_difference("UserNameChangeRequest.count") do
|
||||
@deletion.delete!
|
||||
end
|
||||
|
||||
assert_equal("foo", UserNameChangeRequest.last.original_name)
|
||||
assert_equal("user_#{@user.id}", UserNameChangeRequest.last.desired_name)
|
||||
end
|
||||
|
||||
should "reset the password" do
|
||||
@deletion.delete!
|
||||
assert_equal(false, @user.authenticate_password("password"))
|
||||
|
||||
Reference in New Issue
Block a user