Add basic logging of who resolved report
This commit is contained in:
		| @@ -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 | ||||
|  | ||||
|   | ||||
| @@ -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) } | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -0,0 +1,5 @@ | ||||
| class AddActionTakenByAccountIdToReports < ActiveRecord::Migration[5.0] | ||||
|   def change | ||||
|     add_column :reports, :action_taken_by_account_id, :integer | ||||
|   end | ||||
| end | ||||
							
								
								
									
										17
									
								
								db/schema.rb
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								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| | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user