forked from cybrespace/mastodon
Add basic logging of who resolved report
This commit is contained in:
parent
71458dc6df
commit
68f829e11c
|
@ -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…
Reference in New Issue