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
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def resolve
 | 
					  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)
 | 
					    redirect_to admin_report_path(@report)
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def suspend
 | 
					  def suspend
 | 
				
			||||||
    Admin::SuspensionWorker.perform_async(@report.target_account.id)
 | 
					    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)
 | 
					    redirect_to admin_report_path(@report)
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def silence
 | 
					  def silence
 | 
				
			||||||
    @report.target_account.update(silenced: true)
 | 
					    @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)
 | 
					    redirect_to admin_report_path(@report)
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,6 +3,7 @@
 | 
				
			||||||
class Report < ApplicationRecord
 | 
					class Report < ApplicationRecord
 | 
				
			||||||
  belongs_to :account
 | 
					  belongs_to :account
 | 
				
			||||||
  belongs_to :target_account, class_name: 'Account'
 | 
					  belongs_to :target_account, class_name: 'Account'
 | 
				
			||||||
 | 
					  belongs_to :action_taken_by_account, class_name: 'Account'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  scope :unresolved, -> { where(action_taken: false) }
 | 
					  scope :unresolved, -> { where(action_taken: false) }
 | 
				
			||||||
  scope :resolved,   -> { where(action_taken: true) }
 | 
					  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
 | 
					        = 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'
 | 
					          = fa_icon 'trash'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- unless @report.action_taken?
 | 
					- if !@report.action_taken?
 | 
				
			||||||
  %hr/
 | 
					  %hr/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  %div{ style: 'overflow: hidden' }
 | 
					  %div{ style: 'overflow: hidden' }
 | 
				
			||||||
| 
						 | 
					@ -36,3 +36,9 @@
 | 
				
			||||||
      = link_to 'Suspend account', suspend_admin_report_path(@report), method: :post, class: 'button'
 | 
					      = link_to 'Suspend account', suspend_admin_report_path(@report), method: :post, class: 'button'
 | 
				
			||||||
    %div{ style: 'float: left' }
 | 
					    %div{ style: 'float: left' }
 | 
				
			||||||
      = link_to 'Mark as resolved', resolve_admin_report_path(@report), method: :post, class: 'button'
 | 
					      = 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.
 | 
					# 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
 | 
					  # These are extensions that must be enabled in order to support this database
 | 
				
			||||||
  enable_extension "plpgsql"
 | 
					  enable_extension "plpgsql"
 | 
				
			||||||
| 
						 | 
					@ -201,13 +201,14 @@ ActiveRecord::Schema.define(version: 20170330164118) do
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  create_table "reports", force: :cascade do |t|
 | 
					  create_table "reports", force: :cascade do |t|
 | 
				
			||||||
    t.integer  "account_id",                        null: false
 | 
					    t.integer  "account_id",                                 null: false
 | 
				
			||||||
    t.integer  "target_account_id",                 null: false
 | 
					    t.integer  "target_account_id",                          null: false
 | 
				
			||||||
    t.bigint   "status_ids",        default: [],    null: false, array: true
 | 
					    t.bigint   "status_ids",                 default: [],    null: false, array: true
 | 
				
			||||||
    t.text     "comment",           default: "",    null: false
 | 
					    t.text     "comment",                    default: "",    null: false
 | 
				
			||||||
    t.boolean  "action_taken",      default: false, null: false
 | 
					    t.boolean  "action_taken",               default: false, null: false
 | 
				
			||||||
    t.datetime "created_at",                        null: false
 | 
					    t.datetime "created_at",                                 null: false
 | 
				
			||||||
    t.datetime "updated_at",                        null: false
 | 
					    t.datetime "updated_at",                                 null: false
 | 
				
			||||||
 | 
					    t.integer  "action_taken_by_account_id"
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  create_table "settings", force: :cascade do |t|
 | 
					  create_table "settings", force: :cascade do |t|
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,7 +14,7 @@ RSpec.describe BlockDomainService do
 | 
				
			||||||
    bad_status2
 | 
					    bad_status2
 | 
				
			||||||
    bad_attachment
 | 
					    bad_attachment
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    subject.call('evil.org', :suspend)
 | 
					    subject.call(DomainBlock.create!(domain: 'evil.org', severity: :suspend))
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  it 'creates a domain block' do
 | 
					  it 'creates a domain block' do
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue