about summary refs log tree commit diff
path: root/db
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2018-10-26 23:08:34 +0200
committerGitHub <noreply@github.com>2018-10-26 23:08:34 +0200
commiteef8d9a5f7d07bf785c6a7184e01374e211c6d7f (patch)
tree2f0fa19750c33e94ac060540be04eda694d5f495 /db
parent6e1a4f85ad96b25087d98fed1e70044c0f45a132 (diff)
Add locality check to ActivityPub::FetchRemoteAccountService (#9109)
* Add locality check to ActivityPub::FetchRemoteAccountService

Fix #8643

Because there are a few places where it is called, it is difficult
to confirm if they all previously checked it for locality. It's better
to make sure within the service.

* Remove faux-remote duplicates of local accounts
Diffstat (limited to 'db')
-rw-r--r--db/migrate/20181026034033_remove_faux_remote_account_duplicates.rb16
-rw-r--r--db/schema.rb2
2 files changed, 17 insertions, 1 deletions
diff --git a/db/migrate/20181026034033_remove_faux_remote_account_duplicates.rb b/db/migrate/20181026034033_remove_faux_remote_account_duplicates.rb
new file mode 100644
index 000000000..bd4f4c2a3
--- /dev/null
+++ b/db/migrate/20181026034033_remove_faux_remote_account_duplicates.rb
@@ -0,0 +1,16 @@
+class RemoveFauxRemoteAccountDuplicates < ActiveRecord::Migration[5.2]
+  disable_ddl_transaction!
+
+  def up
+    local_domain = Rails.configuration.x.local_domain
+
+    # Just a safety measure to ensure that under no circumstance
+    # we will query `domain IS NULL` because that would return
+    # actually local accounts, the originals
+    return if local_domain.nil?
+
+    Account.where(domain: local_domain).in_batches.destroy_all
+  end
+
+  def down; end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 3c4f41648..731a84521 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
 #
 # It's strongly recommended that you check this file into your version control system.
 
-ActiveRecord::Schema.define(version: 2018_10_24_224956) do
+ActiveRecord::Schema.define(version: 2018_10_26_034033) do
 
   # These are extensions that must be enabled in order to support this database
   enable_extension "plpgsql"