summaryrefslogtreecommitdiff
path: root/app/controllers/admin
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2016-01-09 19:30:34 +0000
committerDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-02-02 11:25:44 -0200
commitd20e75a8d80c2828336cd22897ea6868d666f8a5 (patch)
tree9cbf725ad1b523ab0c8d94261d4a02a0677ca450 /app/controllers/admin
parent6cffcb05882b0d3c4a02f9acf21806e25ea09ec3 (diff)
downloadgitlab-ce-d20e75a8d80c2828336cd22897ea6868d666f8a5.tar.gz
Support Akismet spam checking for creation of issues via API
Currently any spam detected by Akismet by non-members via API will be logged in a separate table in the admin page. Closes #5612
Diffstat (limited to 'app/controllers/admin')
-rw-r--r--app/controllers/admin/application_settings_controller.rb2
-rw-r--r--app/controllers/admin/spam_logs_controller.rb33
2 files changed, 35 insertions, 0 deletions
diff --git a/app/controllers/admin/application_settings_controller.rb b/app/controllers/admin/application_settings_controller.rb
index 9943745208e..1515086b16d 100644
--- a/app/controllers/admin/application_settings_controller.rb
+++ b/app/controllers/admin/application_settings_controller.rb
@@ -79,6 +79,8 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController
:recaptcha_private_key,
:sentry_enabled,
:sentry_dsn,
+ :akismet_enabled,
+ :akismet_api_key,
restricted_visibility_levels: [],
import_sources: []
)
diff --git a/app/controllers/admin/spam_logs_controller.rb b/app/controllers/admin/spam_logs_controller.rb
new file mode 100644
index 00000000000..69f94dd3ba8
--- /dev/null
+++ b/app/controllers/admin/spam_logs_controller.rb
@@ -0,0 +1,33 @@
+class Admin::SpamLogsController < Admin::ApplicationController
+ before_action :set_spam_log, only: [:destroy]
+
+ def index
+ @spam_logs = SpamLog.order(created_at: :desc).page(params[:page])
+ end
+
+ def destroy
+ @spam_log.destroy
+ message = 'Spam log was successfully destroyed.'
+
+ if params[:remove_user]
+ username = @spam_log.user.username
+ @spam_log.user.destroy
+ message = "User #{username} was successfully destroyed."
+ end
+
+ respond_to do |format|
+ format.json { render json: '{}' }
+ format.html { redirect_to admin_spam_logs_path, notice: message }
+ end
+ end
+
+ private
+
+ def set_spam_log
+ @spam_log = SpamLog.find(params[:id])
+ end
+
+ def spam_log_params
+ params[:spam_log]
+ end
+end