diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2018-12-22 20:02:09 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-22 20:02:09 +0100 |
commit | 3c033c4352f8b156887cd7157b4a89c23a545838 (patch) | |
tree | fa6317223a0104abea84a10e6234a0beef316001 /app/controllers/admin/account_actions_controller.rb | |
parent | 00862dcaff7cb918d29947accda1c01873a7ddeb (diff) |
Add moderation warnings (#9519)
* Add moderation warnings Replace individual routes for disabling, silencing, and suspending a user, as well as the report update route, with a unified account action controller that allows you to select an action (none, disable, silence, suspend) as well as whether it should generate an e-mail notification with optional custom text. That notification, with the optional custom text, is saved as a warning. Additionally, there are warning presets you can configure to save time when performing the above. * Use Account#local_username_and_domain
Diffstat (limited to 'app/controllers/admin/account_actions_controller.rb')
-rw-r--r-- | app/controllers/admin/account_actions_controller.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/app/controllers/admin/account_actions_controller.rb b/app/controllers/admin/account_actions_controller.rb new file mode 100644 index 000000000..e847495f1 --- /dev/null +++ b/app/controllers/admin/account_actions_controller.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +module Admin + class AccountActionsController < BaseController + before_action :set_account + + def new + @account_action = Admin::AccountAction.new(type: params[:type], report_id: params[:report_id], send_email_notification: true) + @warning_presets = AccountWarningPreset.all + end + + def create + account_action = Admin::AccountAction.new(resource_params) + account_action.target_account = @account + account_action.current_account = current_account + + account_action.save! + + if account_action.with_report? + redirect_to admin_report_path(account_action.report) + else + redirect_to admin_account_path(@account.id) + end + end + + private + + def set_account + @account = Account.find(params[:account_id]) + end + + def resource_params + params.require(:admin_account_action).permit(:type, :report_id, :warning_preset_id, :text, :send_email_notification) + end + end +end |