Commit 77c75d2b authored by Sean McGivern's avatar Sean McGivern

Merge branch 'bvl-instance-stats-default' into 'master'

Hide instance statistics by default

Closes #50000

See merge request gitlab-org/gitlab-ce!21044
parents 2b78eab1 baffe82a
......@@ -297,7 +297,7 @@ class ApplicationSetting < ActiveRecord::Base
unique_ips_limit_per_user: 10,
unique_ips_limit_time_window: 3600,
usage_ping_enabled: Settings.gitlab['usage_ping_enabled'],
instance_statistics_visibility_private: false,
instance_statistics_visibility_private: true,
user_default_external: false
}
end
......
......@@ -10,7 +10,7 @@ class AddInstanceStatisticsVisibilityToApplicationSetting < ActiveRecord::Migrat
def up
add_column_with_default(:application_settings, :instance_statistics_visibility_private,
:boolean,
default: false,
default: true,
allow_null: false)
end
......
# frozen_string_literal: true
# See http://doc.gitlab.com/ce/development/migration_style_guide.html
# for more information on how to write migrations for GitLab.
class ChangeInstanceStatsVisibilityDefault < ActiveRecord::Migration
include Gitlab::Database::MigrationHelpers
DOWNTIME = false
def up
change_column_default :application_settings,
:instance_statistics_visibility_private,
true
ApplicationSetting.update_all(instance_statistics_visibility_private: true)
end
def down
change_column_default :application_settings,
:instance_statistics_visibility_private,
false
end
end
......@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20180726172057) do
ActiveRecord::Schema.define(version: 20180806094307) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
......@@ -168,7 +168,7 @@ ActiveRecord::Schema.define(version: 20180726172057) do
t.boolean "enforce_terms", default: false
t.boolean "mirror_available", default: true, null: false
t.boolean "hide_third_party_offers", default: false, null: false
t.boolean "instance_statistics_visibility_private", default: false, null: false
t.boolean "instance_statistics_visibility_private", default: true, null: false
end
create_table "audit_events", force: :cascade do |t|
......
......@@ -35,6 +35,10 @@ RSpec.describe 'Dashboard Active Tab', :js do
context 'on instance statistics' do
subject { visit instance_statistics_root_path }
before do
stub_application_setting(instance_statistics_visibility_private: false)
end
it 'shows Instance Statistics` as active' do
subject
......
......@@ -183,7 +183,13 @@ describe GlobalPolicy do
describe 'read instance statistics' do
context 'regular user' do
it { is_expected.to be_allowed(:read_instance_statistics) }
context 'when instance statistics are publicly available' do
before do
stub_application_setting(instance_statistics_visibility_private: false)
end
it { is_expected.to be_allowed(:read_instance_statistics) }
end
context 'when instance statistics are set to private' do
before do
......@@ -197,7 +203,13 @@ describe GlobalPolicy do
context 'admin' do
let(:current_user) { create(:admin) }
it { is_expected.to be_allowed(:read_instance_statistics) }
context 'when instance statistics are publicly available' do
before do
stub_application_setting(instance_statistics_visibility_private: false)
end
it { is_expected.to be_allowed(:read_instance_statistics) }
end
context 'when instance statistics are set to private' do
before do
......
......@@ -25,7 +25,7 @@ describe API::Settings, 'Settings' do
expect(json_response['ed25519_key_restriction']).to eq(0)
expect(json_response['circuitbreaker_failure_count_threshold']).not_to be_nil
expect(json_response['performance_bar_allowed_group_id']).to be_nil
expect(json_response['instance_statistics_visibility_private']).to be(false)
expect(json_response['instance_statistics_visibility_private']).to be(true)
expect(json_response).not_to have_key('performance_bar_allowed_group_path')
expect(json_response).not_to have_key('performance_bar_enabled')
end
......
......@@ -9,6 +9,8 @@ shared_examples 'instance statistics availability' do
describe 'GET #index' do
it 'is available when the feature is available publicly' do
stub_application_setting(instance_statistics_visibility_private: false)
get :index
expect(response).to have_gitlab_http_status(:success)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment