diff options
author | Claire <claire.github-309c@sitedethib.com> | 2022-02-17 22:31:21 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-17 22:31:21 +0100 |
commit | c8ef003c6b40e9b7212f43f1b5706b0967fcfe8a (patch) | |
tree | 7ab6dc75943d22b27df0ac411483b34f79e72211 /app/controllers/disputes | |
parent | ec4f9066189fbab4368a275e9cd654dc7ad48217 (diff) | |
parent | 41a8606627216e8ed32fb562d245327e5985ba2d (diff) |
Merge pull request #1692 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/controllers/disputes')
-rw-r--r-- | app/controllers/disputes/appeals_controller.rb | 26 | ||||
-rw-r--r-- | app/controllers/disputes/base_controller.rb | 23 | ||||
-rw-r--r-- | app/controllers/disputes/strikes_controller.rb | 17 |
3 files changed, 66 insertions, 0 deletions
diff --git a/app/controllers/disputes/appeals_controller.rb b/app/controllers/disputes/appeals_controller.rb new file mode 100644 index 000000000..eefd92b5a --- /dev/null +++ b/app/controllers/disputes/appeals_controller.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +class Disputes::AppealsController < Disputes::BaseController + before_action :set_strike + + def create + authorize @strike, :appeal? + + @appeal = AppealService.new.call(@strike, appeal_params[:text]) + + redirect_to disputes_strike_path(@strike), notice: I18n.t('disputes.strikes.appealed_msg') + rescue ActiveRecord::RecordInvalid => e + @appeal = e.record + render template: 'disputes/strikes/show' + end + + private + + def set_strike + @strike = current_account.strikes.find(params[:strike_id]) + end + + def appeal_params + params.require(:appeal).permit(:text) + end +end diff --git a/app/controllers/disputes/base_controller.rb b/app/controllers/disputes/base_controller.rb new file mode 100644 index 000000000..7830c5524 --- /dev/null +++ b/app/controllers/disputes/base_controller.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +class Disputes::BaseController < ApplicationController + include Authorization + + layout 'admin' + + skip_before_action :require_functional! + + before_action :set_body_classes + before_action :authenticate_user! + before_action :set_pack + + private + + def set_pack + use_pack 'admin' + end + + def set_body_classes + @body_classes = 'admin' + end +end diff --git a/app/controllers/disputes/strikes_controller.rb b/app/controllers/disputes/strikes_controller.rb new file mode 100644 index 000000000..d41c5c727 --- /dev/null +++ b/app/controllers/disputes/strikes_controller.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +class Disputes::StrikesController < Disputes::BaseController + before_action :set_strike + + def show + authorize @strike, :show? + + @appeal = @strike.appeal || @strike.build_appeal + end + + private + + def set_strike + @strike = AccountWarning.find(params[:id]) + end +end |