Loading app/models/account_deletion.rb +4 −12 Original line number Diff line number Diff line Loading @@ -5,23 +5,15 @@ class AccountDeletion < ApplicationRecord include Diaspora::Federated::Base scope :uncompleted, -> { where('completed_at is null') } scope :uncompleted, -> { where("completed_at is null") } belongs_to :person after_commit :queue_delete_account, :on => :create after_commit :queue_delete_account, on: :create def person=(person) self[:diaspora_handle] = person.diaspora_handle self[:person_id] = person.id end def diaspora_handle=(diaspora_handle) self[:diaspora_handle] = diaspora_handle self[:person_id] ||= Person.find_by_diaspora_handle(diaspora_handle).id end delegate :diaspora_handle, to: :person def queue_delete_account Workers::DeleteAccount.perform_async(self.id) Workers::DeleteAccount.perform_async(id) end def perform! Loading app/models/user.rb +1 −1 Original line number Diff line number Diff line Loading @@ -507,7 +507,7 @@ class User < ApplicationRecord def close_account! self.person.lock_access! self.lock_access! AccountDeletion.create(:person => self.person) AccountDeletion.create(person: person) end def closed_account? Loading db/migrate/20170813141631_cleanup_account_deletions_and_add_unique_index.rb 0 → 100644 +19 −0 Original line number Diff line number Diff line class CleanupAccountDeletionsAndAddUniqueIndex < ActiveRecord::Migration[5.1] def up remove_column :account_deletions, :diaspora_handle duplicate_query = "WHERE a1.person_id = a2.person_id AND a1.id > a2.id" if AppConfig.postgres? execute("DELETE FROM account_deletions AS a1 USING account_deletions AS a2 #{duplicate_query}") else execute("DELETE a1 FROM account_deletions a1, account_deletions a2 #{duplicate_query}") end add_index :account_deletions, :person_id, name: :index_account_deletions_on_person_id, unique: true end def down remove_index :account_deletions, name: :index_account_deletions_on_person_id add_column :account_deletions, :diaspora_handle, :string end end lib/account_deleter.rb +1 −1 Original line number Diff line number Diff line Loading @@ -106,6 +106,6 @@ class AccountDeleter end def mark_account_deletion_complete AccountDeletion.where(:diaspora_handle => self.person.diaspora_handle).where(:person_id => self.person.id).update_all(["completed_at = ?", Time.now]) AccountDeletion.find_by(person: person)&.update_attributes(completed_at: Time.now.utc) end end lib/diaspora/federation/receive.rb +1 −1 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ module Diaspora end def self.account_deletion(entity) AccountDeletion.create!(person: author_of(entity), diaspora_handle: entity.author) AccountDeletion.create!(person: author_of(entity)) end def self.comment(entity) Loading Loading
app/models/account_deletion.rb +4 −12 Original line number Diff line number Diff line Loading @@ -5,23 +5,15 @@ class AccountDeletion < ApplicationRecord include Diaspora::Federated::Base scope :uncompleted, -> { where('completed_at is null') } scope :uncompleted, -> { where("completed_at is null") } belongs_to :person after_commit :queue_delete_account, :on => :create after_commit :queue_delete_account, on: :create def person=(person) self[:diaspora_handle] = person.diaspora_handle self[:person_id] = person.id end def diaspora_handle=(diaspora_handle) self[:diaspora_handle] = diaspora_handle self[:person_id] ||= Person.find_by_diaspora_handle(diaspora_handle).id end delegate :diaspora_handle, to: :person def queue_delete_account Workers::DeleteAccount.perform_async(self.id) Workers::DeleteAccount.perform_async(id) end def perform! Loading
app/models/user.rb +1 −1 Original line number Diff line number Diff line Loading @@ -507,7 +507,7 @@ class User < ApplicationRecord def close_account! self.person.lock_access! self.lock_access! AccountDeletion.create(:person => self.person) AccountDeletion.create(person: person) end def closed_account? Loading
db/migrate/20170813141631_cleanup_account_deletions_and_add_unique_index.rb 0 → 100644 +19 −0 Original line number Diff line number Diff line class CleanupAccountDeletionsAndAddUniqueIndex < ActiveRecord::Migration[5.1] def up remove_column :account_deletions, :diaspora_handle duplicate_query = "WHERE a1.person_id = a2.person_id AND a1.id > a2.id" if AppConfig.postgres? execute("DELETE FROM account_deletions AS a1 USING account_deletions AS a2 #{duplicate_query}") else execute("DELETE a1 FROM account_deletions a1, account_deletions a2 #{duplicate_query}") end add_index :account_deletions, :person_id, name: :index_account_deletions_on_person_id, unique: true end def down remove_index :account_deletions, name: :index_account_deletions_on_person_id add_column :account_deletions, :diaspora_handle, :string end end
lib/account_deleter.rb +1 −1 Original line number Diff line number Diff line Loading @@ -106,6 +106,6 @@ class AccountDeleter end def mark_account_deletion_complete AccountDeletion.where(:diaspora_handle => self.person.diaspora_handle).where(:person_id => self.person.id).update_all(["completed_at = ?", Time.now]) AccountDeletion.find_by(person: person)&.update_attributes(completed_at: Time.now.utc) end end
lib/diaspora/federation/receive.rb +1 −1 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ module Diaspora end def self.account_deletion(entity) AccountDeletion.create!(person: author_of(entity), diaspora_handle: entity.author) AccountDeletion.create!(person: author_of(entity)) end def self.comment(entity) Loading