diff options
author | Claire <claire.github-309c@sitedethib.com> | 2021-02-22 15:23:46 +0100 |
---|---|---|
committer | Claire <claire.github-309c@sitedethib.com> | 2021-02-22 15:23:46 +0100 |
commit | 679642e26c20bf04ceb1a90349c23eb5950bd029 (patch) | |
tree | bfe48773e2fcf9e0fa3a7753b3d8fa2de7217f52 /app/controllers/admin | |
parent | 8792128f38e19b0d7882468a4f1f9362b98793a0 (diff) | |
parent | 2127f40e6bf6deab62f48030263c459d14fed364 (diff) |
Merge branch 'main' into glitch-soc/merge-upstream
Diffstat (limited to 'app/controllers/admin')
-rw-r--r-- | app/controllers/admin/rules_controller.rb | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/app/controllers/admin/rules_controller.rb b/app/controllers/admin/rules_controller.rb new file mode 100644 index 000000000..f3bed3ad8 --- /dev/null +++ b/app/controllers/admin/rules_controller.rb @@ -0,0 +1,59 @@ +# frozen_string_literal: true + +module Admin + class RulesController < BaseController + before_action :set_rule, except: [:index, :create] + + def index + authorize :rule, :index? + + @rules = Rule.ordered + @rule = Rule.new + end + + def create + authorize :rule, :create? + + @rule = Rule.new(resource_params) + + if @rule.save + redirect_to admin_rules_path + else + @rules = Rule.ordered + render :index + end + end + + def edit + authorize @rule, :update? + end + + def update + authorize @rule, :update? + + if @rule.update(resource_params) + redirect_to admin_rules_path + else + render :edit + end + end + + def destroy + authorize @rule, :destroy? + + @rule.discard + + redirect_to admin_rules_path + end + + private + + def set_rule + @rule = Rule.find(params[:id]) + end + + def resource_params + params.require(:rule).permit(:text, :priority) + end + end +end |