Skip to content
Extraits de code Groupes Projets
Non vérifiée Valider 2e9c6f46 rédigé par cmrd Senya's avatar cmrd Senya Validation de Benjamin Neff
Parcourir les fichiers

Clean up invalid contacts from the DB

Cleans invalid contacts where the referenced user was deleted from the DB or where
the referenced person owner was deleted from the DB.

closes #7632
parent ad025850
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -39,6 +39,7 @@ after you've upgraded. ...@@ -39,6 +39,7 @@ after you've upgraded.
* Avoid page to jump to top after a post deletion [#7638](https://github.com/diaspora/diaspora/pull/7638) * Avoid page to jump to top after a post deletion [#7638](https://github.com/diaspora/diaspora/pull/7638)
* Handle duplicate account deletions [#7639](https://github.com/diaspora/diaspora/pull/7639) * Handle duplicate account deletions [#7639](https://github.com/diaspora/diaspora/pull/7639)
* Handle duplicate account migrations [#7641](https://github.com/diaspora/diaspora/pull/7641) * Handle duplicate account migrations [#7641](https://github.com/diaspora/diaspora/pull/7641)
* Handle bugs related to missing users [#7632](https://github.com/diaspora/diaspora/pull/7632)
## Features ## Features
* Ask for confirmation when leaving a submittable comment field [#7530](https://github.com/diaspora/diaspora/pull/7530) * Ask for confirmation when leaving a submittable comment field [#7530](https://github.com/diaspora/diaspora/pull/7530)
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
# #
class Notification < ApplicationRecord class Notification < ApplicationRecord
belongs_to :recipient, class_name: "User" belongs_to :recipient, class_name: "User"
has_many :notification_actors, dependent: :destroy has_many :notification_actors, dependent: :delete_all
has_many :actors, class_name: "Person", through: :notification_actors, source: :person has_many :actors, class_name: "Person", through: :notification_actors, source: :person
belongs_to :target, polymorphic: true belongs_to :target, polymorphic: true
......
# frozen_string_literal: true
class CleanupInvalidContacts < ActiveRecord::Migration[5.1]
class Contact < ApplicationRecord
belongs_to :user
belongs_to :person
has_many :aspect_memberships, dependent: :delete_all
before_destroy :destroy_notifications
def destroy_notifications
Notification.where(
target_type: "Person",
target_id: person_id,
recipient_id: user_id,
type: "Notifications::StartedSharing"
).destroy_all
end
end
class User < ApplicationRecord
end
class Person < ApplicationRecord
belongs_to :owner, class_name: "User", optional: true
end
class Notification < ApplicationRecord
self.inheritance_column = nil
has_many :notification_actors, dependent: :delete_all
end
class NotificationActor < ApplicationRecord
end
class AspectMembership < ApplicationRecord
end
def up
Contact.left_outer_joins(:user).where("users.id is NULL").destroy_all
Contact.left_outer_joins(person: :owner).where("people.owner_id is NOT NULL").where("users.id is NULL").destroy_all
end
end
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter