about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/admin/reports_controller.rb6
-rw-r--r--app/models/report.rb1
-rw-r--r--app/views/admin/reports/show.html.haml8
-rw-r--r--db/migrate/20170403172249_add_action_taken_by_account_id_to_reports.rb5
-rw-r--r--db/schema.rb17
-rw-r--r--spec/services/block_domain_service_spec.rb2
6 files changed, 26 insertions, 13 deletions
diff --git a/app/controllers/admin/reports_controller.rb b/app/controllers/admin/reports_controller.rb
index bb3f028d9..2b3b1809f 100644
--- a/app/controllers/admin/reports_controller.rb
+++ b/app/controllers/admin/reports_controller.rb
@@ -16,19 +16,19 @@ class Admin::ReportsController < ApplicationController
   end
 
   def resolve
-    @report.update(action_taken: true)
+    @report.update(action_taken: true, action_taken_by_account_id: current_account.id)
     redirect_to admin_report_path(@report)
   end
 
   def suspend
     Admin::SuspensionWorker.perform_async(@report.target_account.id)
-    Report.unresolved.where(target_account: @report.target_account).update_all(action_taken: true)
+    Report.unresolved.where(target_account: @report.target_account).update_all(action_taken: true, action_taken_by_account_id: current_account.id)
     redirect_to admin_report_path(@report)
   end
 
   def silence
     @report.target_account.update(silenced: true)
-    Report.unresolved.where(target_account: @report.target_account).update_all(action_taken: true)
+    Report.unresolved.where(target_account: @report.target_account).update_all(action_taken: true, action_taken_by_account_id: current_account.id)
     redirect_to admin_report_path(@report)
   end
 
diff --git a/app/models/report.rb b/app/models/report.rb
index 05dc8cff1..fd8e46aac 100644
--- a/app/models/report.rb
+++ b/app/models/report.rb
@@ -3,6 +3,7 @@
 class Report < ApplicationRecord
   belongs_to :account
   belongs_to :target_account, class_name: 'Account'
+  belongs_to :action_taken_by_account, class_name: 'Account'
 
   scope :unresolved, -> { where(action_taken: false) }
   scope :resolved,   -> { where(action_taken: true) }
diff --git a/app/views/admin/reports/show.html.haml b/app/views/admin/reports/show.html.haml
index 74cac016d..caa8415df 100644
--- a/app/views/admin/reports/show.html.haml
+++ b/app/views/admin/reports/show.html.haml
@@ -27,7 +27,7 @@
         = link_to remove_admin_report_path(@report, status_id: status.id), method: :post, class: 'icon-button', style: 'font-size: 24px; width: 24px; height: 24px', title: 'Delete' do
           = fa_icon 'trash'
 
-- unless @report.action_taken?
+- if !@report.action_taken?
   %hr/
 
   %div{ style: 'overflow: hidden' }
@@ -36,3 +36,9 @@
       = link_to 'Suspend account', suspend_admin_report_path(@report), method: :post, class: 'button'
     %div{ style: 'float: left' }
       = link_to 'Mark as resolved', resolve_admin_report_path(@report), method: :post, class: 'button'
+- elsif !@report.action_taken_by_account.nil?
+  %hr/
+
+  %p
+    %strong Action taken by:
+    = @report.action_taken_by_account.acct
diff --git a/db/migrate/20170403172249_add_action_taken_by_account_id_to_reports.rb b/db/migrate/20170403172249_add_action_taken_by_account_id_to_reports.rb
new file mode 100644
index 000000000..2d4e12198
--- /dev/null
+++ b/db/migrate/20170403172249_add_action_taken_by_account_id_to_reports.rb
@@ -0,0 +1,5 @@
+class AddActionTakenByAccountIdToReports < ActiveRecord::Migration[5.0]
+  def change
+    add_column :reports, :action_taken_by_account_id, :integer
+  end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 5a9ca1426..3aaa3e3ad 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: 20170330164118) do
+ActiveRecord::Schema.define(version: 20170403172249) do
 
   # These are extensions that must be enabled in order to support this database
   enable_extension "plpgsql"
@@ -201,13 +201,14 @@ ActiveRecord::Schema.define(version: 20170330164118) do
   end
 
   create_table "reports", force: :cascade do |t|
-    t.integer  "account_id",                        null: false
-    t.integer  "target_account_id",                 null: false
-    t.bigint   "status_ids",        default: [],    null: false, array: true
-    t.text     "comment",           default: "",    null: false
-    t.boolean  "action_taken",      default: false, null: false
-    t.datetime "created_at",                        null: false
-    t.datetime "updated_at",                        null: false
+    t.integer  "account_id",                                 null: false
+    t.integer  "target_account_id",                          null: false
+    t.bigint   "status_ids",                 default: [],    null: false, array: true
+    t.text     "comment",                    default: "",    null: false
+    t.boolean  "action_taken",               default: false, null: false
+    t.datetime "created_at",                                 null: false
+    t.datetime "updated_at",                                 null: false
+    t.integer  "action_taken_by_account_id"
   end
 
   create_table "settings", force: :cascade do |t|
diff --git a/spec/services/block_domain_service_spec.rb b/spec/services/block_domain_service_spec.rb
index d88b3b55c..8e71d4542 100644
--- a/spec/services/block_domain_service_spec.rb
+++ b/spec/services/block_domain_service_spec.rb
@@ -14,7 +14,7 @@ RSpec.describe BlockDomainService do
     bad_status2
     bad_attachment
 
-    subject.call('evil.org', :suspend)
+    subject.call(DomainBlock.create!(domain: 'evil.org', severity: :suspend))
   end
 
   it 'creates a domain block' do