From 3e1a1242c67781fb52940433c5ad1bbefd346216 Mon Sep 17 00:00:00 2001 From: Timothy Andrew Date: Thu, 6 Apr 2017 15:36:36 +0530 Subject: Move a user's award emoji to the ghost user ... when the user is destroyed. 1. Normally, for a given awardable and award emoji name, a user is only allowed to create a single award emoji. 2. This validation needs to be removed for ghost users, since: - User A and User B have created award emoji - with the same name and against the same awardable - User A is deleted. Their award emoji is moved to the ghost user - User B is deleted. Their award emoji needs to be moved to the ghost user. However, this breaks the uniqueness validation, since the ghost user is only allowed to have one award emoji of a given name for a given awardable --- app/services/concerns/users/migrate_to_ghost_user.rb | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'app/services') diff --git a/app/services/concerns/users/migrate_to_ghost_user.rb b/app/services/concerns/users/migrate_to_ghost_user.rb index 5d1f0ff57d1..76335e45e54 100644 --- a/app/services/concerns/users/migrate_to_ghost_user.rb +++ b/app/services/concerns/users/migrate_to_ghost_user.rb @@ -23,6 +23,7 @@ module Users::MigrateToGhostUser migrate_merge_requests(user) migrate_notes(user) migrate_abuse_reports(user) + migrate_award_emoji(user) end user.reload @@ -45,4 +46,8 @@ module Users::MigrateToGhostUser def migrate_abuse_reports(user) AbuseReport.where(reporter_id: user.id).update_all(reporter_id: ghost_user.id) end + + def migrate_award_emoji(user) + user.award_emoji.update_all(user_id: ghost_user.id) + end end -- cgit v1.2.1