diff options
author | Douwe Maan <douwe@gitlab.com> | 2016-01-05 14:11:15 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2016-01-05 14:11:15 +0000 |
commit | 9b1270280a65cc39c8dd908a12f8dbc7847ec971 (patch) | |
tree | 3a97e40a006d9ed0ff8951708f454ce9f0ea29fd /app | |
parent | 2479af4d5a67fb91ee05e691a27d0548ab4e80ea (diff) | |
parent | 46a220ae3c0e646aac63a3230399fcc8979df6ec (diff) | |
download | gitlab-ce-9b1270280a65cc39c8dd908a12f8dbc7847ec971.tar.gz |
Merge branch 'rs-abuse-reports-refactor' into 'master'
Abuse Report refactors
- Redirect back to user profile after report
- "Tell, Don't Ask" for sending report notifications
See merge request !2293
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/abuse_reports_controller.rb | 11 | ||||
-rw-r--r-- | app/mailers/abuse_report_mailer.rb | 10 | ||||
-rw-r--r-- | app/models/abuse_report.rb | 6 |
3 files changed, 21 insertions, 6 deletions
diff --git a/app/controllers/abuse_reports_controller.rb b/app/controllers/abuse_reports_controller.rb index 20bc5173f1d..38814459f66 100644 --- a/app/controllers/abuse_reports_controller.rb +++ b/app/controllers/abuse_reports_controller.rb @@ -9,12 +9,10 @@ class AbuseReportsController < ApplicationController @abuse_report.reporter = current_user if @abuse_report.save - if current_application_settings.admin_notification_email.present? - AbuseReportMailer.notify(@abuse_report.id).deliver_later - end + @abuse_report.notify message = "Thank you for your report. A GitLab administrator will look into it shortly." - redirect_to root_path, notice: message + redirect_to @abuse_report.user, notice: message else render :new end @@ -23,6 +21,9 @@ class AbuseReportsController < ApplicationController private def report_params - params.require(:abuse_report).permit(:user_id, :message) + params.require(:abuse_report).permit(%i( + message + user_id + )) end end diff --git a/app/mailers/abuse_report_mailer.rb b/app/mailers/abuse_report_mailer.rb index f0c41f69a5c..d0ce827a595 100644 --- a/app/mailers/abuse_report_mailer.rb +++ b/app/mailers/abuse_report_mailer.rb @@ -2,11 +2,19 @@ class AbuseReportMailer < BaseMailer include Gitlab::CurrentSettings def notify(abuse_report_id) + return unless deliverable? + @abuse_report = AbuseReport.find(abuse_report_id) mail( - to: current_application_settings.admin_notification_email, + to: current_application_settings.admin_notification_email, subject: "#{@abuse_report.user.name} (#{@abuse_report.user.username}) was reported for abuse" ) end + + private + + def deliverable? + current_application_settings.admin_notification_email.present? + end end diff --git a/app/models/abuse_report.rb b/app/models/abuse_report.rb index 89b3116b9f2..55864236b2f 100644 --- a/app/models/abuse_report.rb +++ b/app/models/abuse_report.rb @@ -18,4 +18,10 @@ class AbuseReport < ActiveRecord::Base validates :user, presence: true validates :message, presence: true validates :user_id, uniqueness: true + + def notify + return unless self.persisted? + + AbuseReportMailer.notify(self.id).deliver_later + end end |