Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Bennett <lukeeeebennettplus@gmail.com>2018-07-18 04:41:40 +0300
committerBob Van Landuyt <bob@vanlanduyt.co>2018-07-27 16:54:27 +0300
commitcac2d06e1374557b1803c48f3c1e93bd8ca1cad6 (patch)
treee5d8f5e51802ce817bfbe6e4344b00988d09f31c
parent602a1c34e33d75940c7acbf4a31a65e187dbbfde (diff)
Add instance_statistics_visibility_private application setting and top nav icon
-rw-r--r--app/controllers/instance_statistics/application_controller.rb2
-rw-r--r--app/helpers/application_settings_helper.rb5
-rw-r--r--app/models/application_setting.rb1
-rw-r--r--app/views/admin/application_settings/_usage.html.haml3
-rw-r--r--app/views/layouts/nav/_dashboard.html.haml6
-rw-r--r--db/migrate/20180718005113_add_instance_statistics_visibility_to_application_setting.rb20
6 files changed, 35 insertions, 2 deletions
diff --git a/app/controllers/instance_statistics/application_controller.rb b/app/controllers/instance_statistics/application_controller.rb
index 2077b71bf2d..37e4b26c5c1 100644
--- a/app/controllers/instance_statistics/application_controller.rb
+++ b/app/controllers/instance_statistics/application_controller.rb
@@ -9,6 +9,6 @@ class InstanceStatistics::ApplicationController < ApplicationController
end
def authenticate_user!
- render_404 unless current_user.admin?
+ render_404 if ApplicationSettingsHelper.hide_instance_statistics?(current_user)
end
end
diff --git a/app/helpers/application_settings_helper.rb b/app/helpers/application_settings_helper.rb
index 358b896702b..b355008f087 100644
--- a/app/helpers/application_settings_helper.rb
+++ b/app/helpers/application_settings_helper.rb
@@ -15,6 +15,10 @@ module ApplicationSettingsHelper
def allowed_protocols_present?
Gitlab::CurrentSettings.enabled_git_access_protocol.present?
end
+
+ def hide_instance_statistics?(user = current_user)
+ Gitlab::CurrentSettings.instance_statistics_visibility_private? && !user.admin?
+ end
def enabled_protocol
case Gitlab::CurrentSettings.enabled_git_access_protocol
@@ -247,6 +251,7 @@ module ApplicationSettingsHelper
:unique_ips_limit_per_user,
:unique_ips_limit_time_window,
:usage_ping_enabled,
+ :instance_statistics_visibility_private,
:user_default_external,
:user_oauth_applications,
:version_check_enabled,
diff --git a/app/models/application_setting.rb b/app/models/application_setting.rb
index f770b219422..01a59039cff 100644
--- a/app/models/application_setting.rb
+++ b/app/models/application_setting.rb
@@ -290,6 +290,7 @@ class ApplicationSetting < ActiveRecord::Base
user_default_external: false,
polling_interval_multiplier: 1,
usage_ping_enabled: Settings.gitlab['usage_ping_enabled'],
+ instance_statistics_visibility_private: false,
gitaly_timeout_fast: 10,
gitaly_timeout_medium: 30,
gitaly_timeout_default: 55,
diff --git a/app/views/admin/application_settings/_usage.html.haml b/app/views/admin/application_settings/_usage.html.haml
index 40b5c51ac88..860e7765168 100644
--- a/app/views/admin/application_settings/_usage.html.haml
+++ b/app/views/admin/application_settings/_usage.html.haml
@@ -30,6 +30,9 @@
form. For more information, see the documentation on
= succeed '.' do
= link_to 'deactivating the usage ping', help_page_path('user/admin_area/settings/usage_statistics', anchor: 'deactivate-the-usage-ping')
+ .form-group
+ = f.label :instance_statistics_visibility_private, 'Instance Statistics visibility'
+ = f.select :instance_statistics_visibility_private, options_for_select({'All users' => false, 'Only admins' => true}, Gitlab::CurrentSettings.instance_statistics_visibility_private?), {}, class: 'form-control'
= f.submit 'Save changes', class: "btn btn-success"
diff --git a/app/views/layouts/nav/_dashboard.html.haml b/app/views/layouts/nav/_dashboard.html.haml
index a71a4b13a7e..356e52918d9 100644
--- a/app/views/layouts/nav/_dashboard.html.haml
+++ b/app/views/layouts/nav/_dashboard.html.haml
@@ -70,8 +70,12 @@
= nav_link(controller: 'admin/dashboard') do
= link_to admin_root_path, class: 'admin-icon qa-admin-area-link', title: _('Admin area'), aria: { label: _("Admin area") }, data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
= sprite_icon('admin', size: 18)
+ - unless hide_instance_statistics?
+ = nav_link(controller: :instance_statistics) do
+ = link_to instance_statistics_root_path, title: 'Instance statistics', aria: { label: 'Instance statistics' }, data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
+ = sprite_icon('chart', size: 18)
- if Gitlab::Sherlock.enabled?
%li
= link_to sherlock_transactions_path, class: 'admin-icon', title: _('Sherlock Transactions'),
data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
- = icon('tachometer fw')
+ = icon('tachometer fw') \ No newline at end of file
diff --git a/db/migrate/20180718005113_add_instance_statistics_visibility_to_application_setting.rb b/db/migrate/20180718005113_add_instance_statistics_visibility_to_application_setting.rb
new file mode 100644
index 00000000000..4b6c1f74346
--- /dev/null
+++ b/db/migrate/20180718005113_add_instance_statistics_visibility_to_application_setting.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+class AddInstanceStatisticsVisibilityToApplicationSetting < ActiveRecord::Migration
+ include Gitlab::Database::MigrationHelpers
+
+ DOWNTIME = false
+
+ disable_ddl_transaction!
+
+ def up
+ add_column_with_default(:application_settings, :instance_statistics_visibility_private,
+ :boolean,
+ default: false,
+ allow_null: false)
+ end
+
+ def down
+ remove_column(:application_settings, :instance_statistics_visibility_private)
+ end
+end