diff options
author | Claire <claire.github-309c@sitedethib.com> | 2022-02-11 22:22:25 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-11 22:22:25 +0100 |
commit | 59b7ba451b4ded817c98abfa8c88738de0484917 (patch) | |
tree | 86a6af23cb16f45a5bfb660d8edd70ad57d4a30c /app/controllers | |
parent | 776e337b8d2aa66440bc4565617b5440ca781e1a (diff) | |
parent | a34e4f7e279e14b304ed81f698feb19d18a74d04 (diff) |
Merge pull request #1684 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/admin/reports/actions_controller.rb | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/app/controllers/admin/reports/actions_controller.rb b/app/controllers/admin/reports/actions_controller.rb new file mode 100644 index 000000000..05a4fb63d --- /dev/null +++ b/app/controllers/admin/reports/actions_controller.rb @@ -0,0 +1,50 @@ +# frozen_string_literal: true + +class Admin::Reports::ActionsController < Admin::BaseController + before_action :set_report + + def create + authorize @report, :show? + + case action_from_button + when 'delete' + status_batch_action = Admin::StatusBatchAction.new( + type: action_from_button, + status_ids: @report.status_ids, + current_account: current_account, + report_id: @report.id, + send_email_notification: !@report.spam? + ) + + status_batch_action.save! + when 'silence', 'suspend' + account_action = Admin::AccountAction.new( + type: action_from_button, + report_id: @report.id, + target_account: @report.target_account, + current_account: current_account, + send_email_notification: !@report.spam? + ) + + account_action.save! + end + + redirect_to admin_reports_path + end + + private + + def set_report + @report = Report.find(params[:report_id]) + end + + def action_from_button + if params[:delete] + 'delete' + elsif params[:silence] + 'silence' + elsif params[:suspend] + 'suspend' + end + end +end |