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
5 years ago |
|
- # frozen_string_literal: true
-
- module Admin
- class WarningPresetsController < BaseController
- before_action :set_warning_preset, except: [:index, :create]
-
- def index
- authorize :account_warning_preset, :index?
-
- @warning_presets = AccountWarningPreset.all
- @warning_preset = AccountWarningPreset.new
- end
-
- def create
- authorize :account_warning_preset, :create?
-
- @warning_preset = AccountWarningPreset.new(warning_preset_params)
-
- if @warning_preset.save
- redirect_to admin_warning_presets_path
- else
- @warning_presets = AccountWarningPreset.all
- render :index
- end
- end
-
- def edit
- authorize @warning_preset, :update?
- end
-
- def update
- authorize @warning_preset, :update?
-
- if @warning_preset.update(warning_preset_params)
- redirect_to admin_warning_presets_path
- else
- render :edit
- end
- end
-
- def destroy
- authorize @warning_preset, :destroy?
-
- @warning_preset.destroy!
- redirect_to admin_warning_presets_path
- end
-
- private
-
- def set_warning_preset
- @warning_preset = AccountWarningPreset.find(params[:id])
- end
-
- def warning_preset_params
- params.require(:account_warning_preset).permit(:text)
- end
- end
- end
|