summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorJarka Kadlecova <jarka@gitlab.com>2017-07-17 16:38:43 +0200
committerJarka Kadlecova <jarka@gitlab.com>2017-07-19 11:35:17 +0200
commita9d940bffcf7447f8d62012bd1c8f866697a12d6 (patch)
tree98a3cb03c47cb7d066c456e5931ccb5a8662dbb2 /app
parent0cd42fea229a4e3ab9e7e11236b7bd08cff45d00 (diff)
downloadgitlab-ce-a9d940bffcf7447f8d62012bd1c8f866697a12d6.tar.gz
Use Ghost user when edited_by, merged_by deleted34930-fix-edited-by
Diffstat (limited to 'app')
-rw-r--r--app/models/concerns/editable.rb4
-rw-r--r--app/models/user.rb4
-rw-r--r--app/services/users/migrate_to_ghost_user_service.rb2
3 files changed, 9 insertions, 1 deletions
diff --git a/app/models/concerns/editable.rb b/app/models/concerns/editable.rb
index c62c7e1e936..28623d257a6 100644
--- a/app/models/concerns/editable.rb
+++ b/app/models/concerns/editable.rb
@@ -4,4 +4,8 @@ module Editable
def is_edited?
last_edited_at.present? && last_edited_at != created_at
end
+
+ def last_edited_by
+ super || User.ghost
+ end
end
diff --git a/app/models/user.rb b/app/models/user.rb
index 8f40af24e20..c26be6d05a2 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -385,9 +385,11 @@ class User < ActiveRecord::Base
# Return (create if necessary) the ghost user. The ghost user
# owns records previously belonging to deleted users.
def ghost
- unique_internal(where(ghost: true), 'ghost', 'ghost%s@example.com') do |u|
+ email = 'ghost%s@example.com'
+ unique_internal(where(ghost: true), 'ghost', email) do |u|
u.bio = 'This is a "Ghost User", created to hold all issues authored by users that have since been deleted. This user cannot be removed.'
u.name = 'Ghost User'
+ u.notification_email = email
end
end
end
diff --git a/app/services/users/migrate_to_ghost_user_service.rb b/app/services/users/migrate_to_ghost_user_service.rb
index 4628c4c6f6e..3a9c151cf9b 100644
--- a/app/services/users/migrate_to_ghost_user_service.rb
+++ b/app/services/users/migrate_to_ghost_user_service.rb
@@ -50,10 +50,12 @@ module Users
def migrate_issues
user.issues.update_all(author_id: ghost_user.id)
+ Issue.where(last_edited_by_id: user.id).update_all(last_edited_by_id: ghost_user.id)
end
def migrate_merge_requests
user.merge_requests.update_all(author_id: ghost_user.id)
+ MergeRequest.where(merge_user_id: user.id).update_all(merge_user_id: ghost_user.id)
end
def migrate_notes