forked from cybrespace/mastodon
		
	Add basic logging of who resolved report
This commit is contained in:
		
							parent
							
								
									71458dc6df
								
							
						
					
					
						commit
						68f829e11c
					
				
					 6 changed files with 26 additions and 13 deletions
				
			
		| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			@ -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"
 | 
			
		||||
| 
						 | 
				
			
			@ -208,6 +208,7 @@ ActiveRecord::Schema.define(version: 20170330164118) do
 | 
			
		|||
    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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue