]> source.dussan.org Git - redmine.git/commitdiff
Fix: `updated_by_id` in Journal points to a deleted user instead of an anonymous...
authorGo MAEDA <maeda@farend.jp>
Tue, 29 Oct 2024 01:02:04 +0000 (01:02 +0000)
committerGo MAEDA <maeda@farend.jp>
Tue, 29 Oct 2024 01:02:04 +0000 (01:02 +0000)
Patch by Go MAEDA (user:maeda).

git-svn-id: https://svn.redmine.org/redmine/trunk@23169 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/user.rb
test/unit/user_test.rb

index cc4489662d70e3ee440952377152a7f2f735589e..4ce63f8097935ee6ae970e9b7c715b840a0e4baa 100644 (file)
@@ -945,6 +945,7 @@ class User < Principal
     Issue.where(['author_id = ?', id]).update_all(['author_id = ?', substitute.id])
     Issue.where(['assigned_to_id = ?', id]).update_all('assigned_to_id = NULL')
     Journal.where(['user_id = ?', id]).update_all(['user_id = ?', substitute.id])
+    Journal.where(['updated_by_id = ?', id]).update_all(['updated_by_id = ?', substitute.id])
     JournalDetail.
       where(["property = 'attr' AND prop_key = 'assigned_to_id' AND old_value = ?", id.to_s]).
       update_all(['old_value = ?', substitute.id.to_s])
index 34c055c2b25380576d7eef4f9481d943314b8150..2de0b45db855e1e8783d320175ef4f77f46b154d 100644 (file)
@@ -308,12 +308,17 @@ class UserTest < ActiveSupport::TestCase
   def test_destroy_should_update_journals
     issue = Issue.generate!(:project_id => 1, :author_id => 2,
                           :tracker_id => 1, :subject => 'foo')
+    # Prepare a journal with both user_id and updated_by_id set to 2
     issue.init_journal(User.find(2), "update")
     issue.save!
+    journal = issue.journals.first
+    journal.update_columns(updated_by_id: 2)
 
     User.find(2).destroy
     assert_nil User.find_by_id(2)
-    assert_equal User.anonymous, issue.journals.first.reload.user
+    journal.reload
+    assert_equal User.anonymous, journal.user
+    assert_equal User.anonymous, journal.updated_by
   end
 
   def test_destroy_should_update_journal_details_old_value