38 lines
1.1 KiB
Ruby
38 lines
1.1 KiB
Ruby
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
|