summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-08-06 15:08:22 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-08-06 15:08:22 +0200
commit7a9d432cdb84936bf8dd1359d363f42e6ebca542 (patch)
tree7f8c13390a4e341475a6a6a06f9c1c5e9b26edbb
parentcba7f20dc8614d12e3eeda6e14f454aeb22b9b54 (diff)
downloadgitlab-ce-7a9d432cdb84936bf8dd1359d363f42e6ebca542.tar.gz
Add abuse report management in admin area
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-rw-r--r--app/controllers/admin/abuse_reports_controller.rb11
-rw-r--r--app/views/admin/abuse_reports/_abuse_report.html.haml23
-rw-r--r--app/views/admin/abuse_reports/index.html.haml16
-rw-r--r--app/views/layouts/nav/_admin.html.haml7
-rw-r--r--config/routes.rb1
5 files changed, 58 insertions, 0 deletions
diff --git a/app/controllers/admin/abuse_reports_controller.rb b/app/controllers/admin/abuse_reports_controller.rb
new file mode 100644
index 00000000000..34f37bca4ad
--- /dev/null
+++ b/app/controllers/admin/abuse_reports_controller.rb
@@ -0,0 +1,11 @@
+class Admin::AbuseReportsController < Admin::ApplicationController
+ def index
+ @abuse_reports = AbuseReport.order(id: :desc).page(params[:page])
+ end
+
+ def destroy
+ AbuseReport.find(params[:id]).destroy
+
+ redirect_to admin_abuse_reports_path, notice: 'Report was removed'
+ end
+end
diff --git a/app/views/admin/abuse_reports/_abuse_report.html.haml b/app/views/admin/abuse_reports/_abuse_report.html.haml
new file mode 100644
index 00000000000..4449721ae38
--- /dev/null
+++ b/app/views/admin/abuse_reports/_abuse_report.html.haml
@@ -0,0 +1,23 @@
+- reporter = abuse_report.reporter
+- user = abuse_report.user
+%tr
+ %td
+ - if reporter
+ = link_to reporter.name, [:admin, reporter]
+ - else
+ (removed)
+ %td
+ = abuse_report.created_at.to_s(:short)
+ %td
+ = abuse_report.message
+ %td
+ - if user
+ = link_to user.name, [:admin, user]
+ - else
+ (removed)
+ %td
+ - if user
+ = link_to 'Block', block_admin_user_path(user), data: {confirm: 'USER WILL BE BLOCKED! Are you sure?'}, method: :put, class: "btn btn-xs btn-warning"
+ = link_to 'Remove user', [:admin, user], data: { confirm: "USER #{user.name} WILL BE REMOVED! Are you sure?" }, method: :delete, class: "btn btn-xs btn-remove"
+ %td
+ = link_to 'Remove report', [:admin, abuse_report], method: :delete, class: "btn btn-xs btn-close"
diff --git a/app/views/admin/abuse_reports/index.html.haml b/app/views/admin/abuse_reports/index.html.haml
new file mode 100644
index 00000000000..a3c900e16aa
--- /dev/null
+++ b/app/views/admin/abuse_reports/index.html.haml
@@ -0,0 +1,16 @@
+- page_title "Abuse Reports"
+%h3.page-title Abuse Reports
+%hr
+- if @abuse_reports.present?
+ %table.table
+ %thead
+ %tr
+ %th Reported by
+ %th Reported at
+ %th Message
+ %th User
+ %th
+ %th
+ = render @abuse_reports
+- else
+ %h4 There are no abuse reports
diff --git a/app/views/layouts/nav/_admin.html.haml b/app/views/layouts/nav/_admin.html.haml
index a3191593dae..2065be3828a 100644
--- a/app/views/layouts/nav/_admin.html.haml
+++ b/app/views/layouts/nav/_admin.html.haml
@@ -57,6 +57,13 @@
%span
Service Templates
+ = nav_link(controller: :abuse_reports) do
+ = link_to admin_abuse_reports_path, title: "Abuse reports" do
+ = icon('exclamation-circle fw')
+ %span
+ Abuse Reports
+ %span.count= AbuseReport.count(:all)
+
= nav_link(controller: :application_settings, html_options: { class: 'separate-item'}) do
= link_to admin_application_settings_path, title: 'Settings', data: {placement: 'right'} do
= icon('cogs fw')
diff --git a/config/routes.rb b/config/routes.rb
index 4e90a89535e..d7307a61ede 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -168,6 +168,7 @@ Gitlab::Application.routes.draw do
end
end
+ resources :abuse_reports, only: [:index, :destroy]
resources :applications
resources :groups, constraints: { id: /[^\/]+/ } do