Merge pull request #6802 from aignatov-bio/ai-sci-9868-fix-user-deletion

Fix user deletion [SCI-9868]
This commit is contained in:
Martin Artnik 2023-12-12 11:11:02 +01:00 committed by GitHub
commit ea4eb6f785
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -321,7 +321,6 @@ class User < ApplicationRecord
has_many :hidden_repository_cell_reminders, dependent: :destroy
before_validation :downcase_email!
before_destroy :destroy_notifications
def name
full_name
@ -635,25 +634,6 @@ class User < ApplicationRecord
self.email = email.downcase
end
def destroy_notifications
# Find all notifications where user is the only reference
# on the notification, and destroy all such notifications
# (user_notifications are destroyed when notification is
# destroyed). We try to do this efficiently (hence in_groups_of).
nids_all = notifications.pluck(:id)
nids_all.in_groups_of(1000, false) do |nids|
Notification
.where(id: nids)
.joins(:user_notifications)
.group('notifications.id')
.having('count(notification_id) <= 1')
.destroy_all
end
# Now, simply destroy all user notification relations left
user_notifications.destroy_all
end
def clear_view_cache
Rails.cache.delete_matched(%r{^views\/users\/#{id}-})
end