otwarchive-symphonyarchive/app/controllers/abuse_reports_controller.rb

39 lines
1.1 KiB
Ruby
Raw Permalink Normal View History

2026-03-11 22:22:11 +00:00
class AbuseReportsController < ApplicationController
skip_before_action :store_location
before_action :load_abuse_languages
def new
@abuse_report = AbuseReport.new
reporter = current_admin || current_user
if reporter.present?
@abuse_report.email = reporter.email
@abuse_report.username = reporter.login
end
@abuse_report.url = params[:url] || request.env["HTTP_REFERER"]
end
def create
@abuse_report = AbuseReport.new(abuse_report_params)
@abuse_report.ip_address = request.remote_ip
if @abuse_report.save
@abuse_report.email_and_send
flash[:notice] = ts("Your report was submitted to the Policy & Abuse team. A confirmation message has been sent to the email address you provided.")
redirect_to root_path
else
render action: "new"
end
end
private
def load_abuse_languages
@abuse_languages = Language.where(abuse_support_available: true).default_order
end
def abuse_report_params
params.require(:abuse_report).permit(
:username, :email, :language, :summary, :url, :comment
)
end
end