commit: 68f829e11c058c55a6695b5812aa0577b5b1eea1
parent: 71458dc6df368801b32b55bb63baa94375019a83
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Mon, 3 Apr 2017 19:27:30 +0200
Add basic logging of who resolved report
Diffstat:
6 files changed, 26 insertions(+), 13 deletions(-)
diff --git 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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