Sha256: 7727512a9ec2bb92a33828ee490e57b8601ec2103d29fc018d98cd96135f504a

Contents?: true

Size: 1.93 KB

Versions: 16

Compression:

Stored size: 1.93 KB

Contents

# frozen_string_literal: true

module Decidim
  module Admin
    # This controller allows admins to manage moderations in a participatory process.
    class ModerationsController < Decidim::Admin::ApplicationController
      helper_method :moderations, :allowed_to?

      def index
        enforce_permission_to :read, :moderation
      end

      def unreport
        enforce_permission_to :unreport, :moderation

        Admin::UnreportResource.call(reportable, current_user) do
          on(:ok) do
            flash[:notice] = I18n.t("reportable.unreport.success", scope: "decidim.moderations.admin")
            redirect_to moderations_path
          end

          on(:invalid) do
            flash.now[:alert] = I18n.t("reportable.unreport.invalid", scope: "decidim.moderations.admin")
            redirect_to moderations_path
          end
        end
      end

      def hide
        enforce_permission_to :hide, :moderation

        Admin::HideResource.call(reportable, current_user) do
          on(:ok) do
            flash[:notice] = I18n.t("reportable.hide.success", scope: "decidim.moderations.admin")
            redirect_to moderations_path
          end

          on(:invalid) do
            flash.now[:alert] = I18n.t("reportable.hide.invalid", scope: "decidim.moderations.admin")
            redirect_to moderations_path
          end
        end
      end

      private

      def moderations
        @moderations ||= begin
          if params[:hidden]
            participatory_space_moderations.where.not(hidden_at: nil)
          else
            participatory_space_moderations.where(hidden_at: nil)
          end
        end
      end

      def reportable
        @reportable ||= participatory_space_moderations.find(params[:id]).reportable
      end

      def participatory_space_moderations
        @participatory_space_moderations ||= Decidim::Moderation.where(participatory_space: current_participatory_space)
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
decidim-admin-0.16.1 app/controllers/decidim/admin/moderations_controller.rb
decidim-admin-0.16.0 app/controllers/decidim/admin/moderations_controller.rb
decidim-admin-0.15.2 app/controllers/decidim/admin/moderations_controller.rb
decidim-admin-0.15.1 app/controllers/decidim/admin/moderations_controller.rb
decidim-admin-0.15.0 app/controllers/decidim/admin/moderations_controller.rb
decidim-admin-0.14.4 app/controllers/decidim/admin/moderations_controller.rb
decidim-admin-0.14.3 app/controllers/decidim/admin/moderations_controller.rb
decidim-admin-0.14.2 app/controllers/decidim/admin/moderations_controller.rb
decidim-admin-0.14.1 app/controllers/decidim/admin/moderations_controller.rb
decidim-admin-0.13.1 app/controllers/decidim/admin/moderations_controller.rb
decidim-admin-0.12.2 app/controllers/decidim/admin/moderations_controller.rb
decidim-admin-0.13.0 app/controllers/decidim/admin/moderations_controller.rb
decidim-admin-0.12.1 app/controllers/decidim/admin/moderations_controller.rb
decidim-admin-0.13.0.pre1 app/controllers/decidim/admin/moderations_controller.rb
decidim-admin-0.12.0 app/controllers/decidim/admin/moderations_controller.rb
decidim-admin-0.12.0.pre app/controllers/decidim/admin/moderations_controller.rb