0
0
Fork 0

Change deletes to preserve soft-deleted statuses in unresolved reports (#11805)

Change all account actions except "none" to resolve all unresolved reports

Refactor `SuspendAccountService` to be more readable
This commit is contained in:
Eugen Rochko 2019-09-11 16:32:44 +02:00 committed by GitHub
parent 4fe127664b
commit c5d37f18cb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
21 changed files with 98 additions and 45 deletions

View file

@ -83,19 +83,23 @@ class Admin::AccountAction
# A log entry is only interesting if the warning contains
# custom text from someone. Otherwise it's just noise.
log_action(:create, warning) if warning.text.present?
end
def process_reports!
return if report_id.blank?
# If we're doing "mark as resolved" on a single report,
# then we want to keep other reports open in case they
# contain new actionable information.
#
# Otherwise, we will mark all unresolved reports about
# the account as resolved.
authorize(report, :update?)
reports.each { |report| authorize(report, :update?) }
if type == 'none'
reports.each do |report|
log_action(:resolve, report)
report.resolve!(current_account)
else
Report.where(target_account: target_account).unresolved.update_all(action_taken: true, action_taken_by_account_id: current_account.id)
end
end
@ -141,6 +145,16 @@ class Admin::AccountAction
@report.status_ids if @report && include_statuses
end
def reports
@reports ||= begin
if type == 'none' && with_report?
[report]
else
Report.where(target_account: target_account).unresolved
end
end
end
def warning_preset
@warning_preset ||= AccountWarningPreset.find(warning_preset_id) if warning_preset_id.present?
end