about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJeong Arm <kjwonmail@gmail.com>2019-05-10 05:03:03 +0900
committerEugen Rochko <eugen@zeonfederated.com>2019-05-09 22:03:02 +0200
commitce8635605c3be41ef0a20ade0e7a89b170bf7f04 (patch)
tree52dec6b31da7b77ce12c6b37b4bc0582e5dcf846
parent09eea46631c99792e6e3b59ee20253827fd87ade (diff)
Record deleted(by mod) status to prevent re-appear (#10732)
* Record deleted(by mod) status to prevent re-appear

* Move to Tombstone

* Add missing migration script
-rw-r--r--app/models/form/status_batch.rb1
-rw-r--r--app/models/tombstone.rb11
-rw-r--r--db/migrate/20190509164208_add_by_moderator_to_tombstone.rb5
-rw-r--r--db/schema.rb5
4 files changed, 15 insertions, 7 deletions
diff --git a/app/models/form/status_batch.rb b/app/models/form/status_batch.rb
index 898728067..933dfdaca 100644
--- a/app/models/form/status_batch.rb
+++ b/app/models/form/status_batch.rb
@@ -35,6 +35,7 @@ class Form::StatusBatch
   def delete_statuses
     Status.where(id: status_ids).reorder(nil).find_each do |status|
       RemovalWorker.perform_async(status.id)
+      Tombstone.find_or_create_by(uri: status.uri, account: status.account, by_moderator: true)
       log_action :destroy, status
     end
 
diff --git a/app/models/tombstone.rb b/app/models/tombstone.rb
index 997bb65fd..bf666c43a 100644
--- a/app/models/tombstone.rb
+++ b/app/models/tombstone.rb
@@ -4,11 +4,12 @@
 #
 # Table name: tombstones
 #
-#  id         :bigint(8)        not null, primary key
-#  account_id :bigint(8)
-#  uri        :string           not null
-#  created_at :datetime         not null
-#  updated_at :datetime         not null
+#  id           :bigint(8)        not null, primary key
+#  account_id   :bigint(8)
+#  uri          :string           not null
+#  created_at   :datetime         not null
+#  updated_at   :datetime         not null
+#  by_moderator :boolean
 #
 
 class Tombstone < ApplicationRecord
diff --git a/db/migrate/20190509164208_add_by_moderator_to_tombstone.rb b/db/migrate/20190509164208_add_by_moderator_to_tombstone.rb
new file mode 100644
index 000000000..80c244842
--- /dev/null
+++ b/db/migrate/20190509164208_add_by_moderator_to_tombstone.rb
@@ -0,0 +1,5 @@
+class AddByModeratorToTombstone < ActiveRecord::Migration[5.2]
+  def change
+    add_column :tombstones, :by_moderator, :boolean
+  end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 8613539d6..4dcbea4e7 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: 2019_04_20_025523) do
+ActiveRecord::Schema.define(version: 2019_05_09_164208) do
 
   # These are extensions that must be enabled in order to support this database
   enable_extension "plpgsql"
@@ -382,9 +382,9 @@ ActiveRecord::Schema.define(version: 2019_04_20_025523) do
   create_table "mutes", force: :cascade do |t|
     t.datetime "created_at", null: false
     t.datetime "updated_at", null: false
+    t.boolean "hide_notifications", default: true, null: false
     t.bigint "account_id", null: false
     t.bigint "target_account_id", null: false
-    t.boolean "hide_notifications", default: true, null: false
     t.index ["account_id", "target_account_id"], name: "index_mutes_on_account_id_and_target_account_id", unique: true
     t.index ["target_account_id"], name: "index_mutes_on_target_account_id"
   end
@@ -676,6 +676,7 @@ ActiveRecord::Schema.define(version: 2019_04_20_025523) do
     t.string "uri", null: false
     t.datetime "created_at", null: false
     t.datetime "updated_at", null: false
+    t.boolean "by_moderator"
     t.index ["account_id"], name: "index_tombstones_on_account_id"
     t.index ["uri"], name: "index_tombstones_on_uri"
   end