Sha256: 1eab6a50ba2d709cebda6d399f1aae888037bdf5604883f5ee969b47e88ba0a4

Contents?: true

Size: 1.11 KB

Versions: 7

Compression:

Stored size: 1.11 KB

Contents

# frozen_string_literal: true

module Decidim
  class ReportUsersController < ApplicationController
    include FormFactory
    include NeedsPermission

    before_action :authenticate_user!

    def create
      enforce_permission_to :create, :user_report

      @form = form(Decidim::ReportForm).from_params(params)

      CreateUserReport.call(@form, reportable, current_user) do
        on(:ok) do
          flash[:notice] = I18n.t("decidim.reports.create.success")
          if @form.block?
            redirect_to decidim_admin.new_user_block_path(user_id: reportable.id, hide: form.hide?)
          else
            redirect_back fallback_location: root_path
          end
        end

        on(:invalid) do
          flash[:alert] = I18n.t("decidim.reports.create.error")
          redirect_back fallback_location: root_path
        end
      end
    end

    private

    def reportable
      @reportable ||= GlobalID::Locator.locate_signed params[:sgid]
    end

    def permission_class_chain
      [Decidim::ReportUserPermissions, Decidim::Permissions]
    end

    def permission_scope
      :public
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
decidim-core-0.28.4 app/controllers/decidim/report_users_controller.rb
decidim-core-0.28.3 app/controllers/decidim/report_users_controller.rb
decidim-core-0.28.2 app/controllers/decidim/report_users_controller.rb
decidim-core-0.28.1 app/controllers/decidim/report_users_controller.rb
decidim-core-0.28.0 app/controllers/decidim/report_users_controller.rb
decidim-core-0.28.0.rc5 app/controllers/decidim/report_users_controller.rb
decidim-core-0.28.0.rc4 app/controllers/decidim/report_users_controller.rb