From ed81ee9ba2b5a0b68996ccb238bfa4c69a6df062 Mon Sep 17 00:00:00 2001 From: Sean McGivern Date: Fri, 27 Jul 2018 13:12:35 +0000 Subject: [PATCH] Revert "Merge branch '41416-making-instance-wide-data-tools-more-accessible' into 'master'" This reverts merge request !20679 --- .../cohorts_controller.rb | 4 +- ...ersational_development_index_controller.rb | 5 ++ .../application_controller.rb | 8 --- ...ersational_development_index_controller.rb | 5 -- app/helpers/application_settings_helper.rb | 1 - app/models/application_setting.rb | 1 - app/policies/global_policy.rb | 5 -- .../application_settings/_usage.html.haml | 5 +- .../cohorts/_cohorts_table.html.haml | 0 .../cohorts/_usage_ping.html.haml | 0 .../cohorts/index.html.haml | 0 .../_callout.html.haml | 0 .../_card.html.haml | 0 .../_disabled.html.haml | 0 .../_no_data.html.haml | 0 .../show.html.haml} | 0 .../layouts/instance_statistics.html.haml | 6 -- app/views/layouts/nav/_dashboard.html.haml | 8 +-- .../layouts/nav/sidebar/_admin.html.haml | 12 +++- .../sidebar/_instance_statistics.html.haml | 33 ---------- ...stance-wide-data-tools-more-accessible.yml | 5 -- config/routes.rb | 2 - config/routes/admin.rb | 4 ++ config/routes/instance_statistics.rb | 6 -- ...stics_visibility_to_application_setting.rb | 18 ------ db/schema.rb | 1 - doc/api/settings.md | 7 +-- lib/api/settings.rb | 1 - .../cohorts_controller_spec.rb | 7 --- ...ional_development_index_controller_spec.rb | 7 --- .../admin_cohorts_spec.rb} | 4 +- ..._conversational_development_index_spec.rb} | 8 +-- spec/features/dashboard/active_tab_spec.rb | 28 ++++----- .../dashboard/instance_statistics_spec.rb | 60 ------------------- spec/policies/global_policy_spec.rb | 34 ----------- spec/requests/api/settings_spec.rb | 5 +- .../instance_statistics_routing_spec.rb | 11 ---- ..._statistics_controllers_shared_examples.rb | 37 ------------ 38 files changed, 43 insertions(+), 295 deletions(-) rename app/controllers/{instance_statistics => admin}/cohorts_controller.rb (69%) create mode 100644 app/controllers/admin/conversational_development_index_controller.rb delete mode 100644 app/controllers/instance_statistics/application_controller.rb delete mode 100644 app/controllers/instance_statistics/conversational_development_index_controller.rb rename app/views/{instance_statistics => admin}/cohorts/_cohorts_table.html.haml (100%) rename app/views/{instance_statistics => admin}/cohorts/_usage_ping.html.haml (100%) rename app/views/{instance_statistics => admin}/cohorts/index.html.haml (100%) rename app/views/{instance_statistics => admin}/conversational_development_index/_callout.html.haml (100%) rename app/views/{instance_statistics => admin}/conversational_development_index/_card.html.haml (100%) rename app/views/{instance_statistics => admin}/conversational_development_index/_disabled.html.haml (100%) rename app/views/{instance_statistics => admin}/conversational_development_index/_no_data.html.haml (100%) rename app/views/{instance_statistics/conversational_development_index/index.html.haml => admin/conversational_development_index/show.html.haml} (100%) delete mode 100644 app/views/layouts/instance_statistics.html.haml delete mode 100644 app/views/layouts/nav/sidebar/_instance_statistics.html.haml delete mode 100644 changelogs/unreleased/41416-making-instance-wide-data-tools-more-accessible.yml delete mode 100644 config/routes/instance_statistics.rb delete mode 100644 db/migrate/20180718005113_add_instance_statistics_visibility_to_application_setting.rb delete mode 100644 spec/controllers/instance_statistics/cohorts_controller_spec.rb delete mode 100644 spec/controllers/instance_statistics/conversational_development_index_controller_spec.rb rename spec/features/{instance_statistics/cohorts_spec.rb => admin/admin_cohorts_spec.rb} (75%) rename spec/features/{instance_statistics/conversational_development_index_spec.rb => admin/admin_conversational_development_index_spec.rb} (75%) delete mode 100644 spec/features/dashboard/instance_statistics_spec.rb delete mode 100644 spec/routing/instance_statistics_routing_spec.rb delete mode 100644 spec/support/shared_examples/instance_statistics_controllers_shared_examples.rb diff --git a/app/controllers/instance_statistics/cohorts_controller.rb b/app/controllers/admin/cohorts_controller.rb similarity index 69% rename from app/controllers/instance_statistics/cohorts_controller.rb rename to app/controllers/admin/cohorts_controller.rb index 7eba0a5ecdd..10d9d1b5345 100644 --- a/app/controllers/instance_statistics/cohorts_controller.rb +++ b/app/controllers/admin/cohorts_controller.rb @@ -1,6 +1,4 @@ -# frozen_string_literal: true - -class InstanceStatistics::CohortsController < InstanceStatistics::ApplicationController +class Admin::CohortsController < Admin::ApplicationController def index if Gitlab::CurrentSettings.usage_ping_enabled cohorts_results = Rails.cache.fetch('cohorts', expires_in: 1.day) do diff --git a/app/controllers/admin/conversational_development_index_controller.rb b/app/controllers/admin/conversational_development_index_controller.rb new file mode 100644 index 00000000000..921169d3e2b --- /dev/null +++ b/app/controllers/admin/conversational_development_index_controller.rb @@ -0,0 +1,5 @@ +class Admin::ConversationalDevelopmentIndexController < Admin::ApplicationController + def show + @metric = ConversationalDevelopmentIndex::Metric.order(:created_at).last&.present + end +end diff --git a/app/controllers/instance_statistics/application_controller.rb b/app/controllers/instance_statistics/application_controller.rb deleted file mode 100644 index 162e311f175..00000000000 --- a/app/controllers/instance_statistics/application_controller.rb +++ /dev/null @@ -1,8 +0,0 @@ -class InstanceStatistics::ApplicationController < ApplicationController - before_action :authorize_read_instance_statistics! - layout 'instance_statistics' - - def authorize_read_instance_statistics! - render_404 unless can?(current_user, :read_instance_statistics) - end -end diff --git a/app/controllers/instance_statistics/conversational_development_index_controller.rb b/app/controllers/instance_statistics/conversational_development_index_controller.rb deleted file mode 100644 index 023ce917e13..00000000000 --- a/app/controllers/instance_statistics/conversational_development_index_controller.rb +++ /dev/null @@ -1,5 +0,0 @@ -class InstanceStatistics::ConversationalDevelopmentIndexController < InstanceStatistics::ApplicationController - def index - @metric = ConversationalDevelopmentIndex::Metric.order(:created_at).last&.present - end -end diff --git a/app/helpers/application_settings_helper.rb b/app/helpers/application_settings_helper.rb index 9e2346177a4..358b896702b 100644 --- a/app/helpers/application_settings_helper.rb +++ b/app/helpers/application_settings_helper.rb @@ -247,7 +247,6 @@ 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 01a59039cff..f770b219422 100644 --- a/app/models/application_setting.rb +++ b/app/models/application_setting.rb @@ -290,7 +290,6 @@ 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/policies/global_policy.rb b/app/policies/global_policy.rb index 16c58730878..6e3827736b2 100644 --- a/app/policies/global_policy.rb +++ b/app/policies/global_policy.rb @@ -19,11 +19,6 @@ class GlobalPolicy < BasePolicy @user&.required_terms_not_accepted? end - condition(:private_instance_statistics, score: 0) { Gitlab::CurrentSettings.instance_statistics_visibility_private? } - - rule { admin | (~private_instance_statistics & ~anonymous) } - .enable :read_instance_statistics - rule { anonymous }.policy do prevent :log_in prevent :receive_notifications diff --git a/app/views/admin/application_settings/_usage.html.haml b/app/views/admin/application_settings/_usage.html.haml index 860e7765168..49a3ee33a85 100644 --- a/app/views/admin/application_settings/_usage.html.haml +++ b/app/views/admin/application_settings/_usage.html.haml @@ -23,16 +23,13 @@ periodically collect usage information. = link_to 'Learn more', help_page_path("user/admin_area/settings/usage_statistics", anchor: "usage-ping") about what information is shared with GitLab Inc. Visit - = link_to 'Cohorts', instance_statistics_cohorts_path(anchor: 'usage-ping') + = link_to 'Cohorts', admin_cohorts_path(anchor: 'usage-ping') to see the JSON payload sent. - else The usage ping is disabled, and cannot be configured through this 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/instance_statistics/cohorts/_cohorts_table.html.haml b/app/views/admin/cohorts/_cohorts_table.html.haml similarity index 100% rename from app/views/instance_statistics/cohorts/_cohorts_table.html.haml rename to app/views/admin/cohorts/_cohorts_table.html.haml diff --git a/app/views/instance_statistics/cohorts/_usage_ping.html.haml b/app/views/admin/cohorts/_usage_ping.html.haml similarity index 100% rename from app/views/instance_statistics/cohorts/_usage_ping.html.haml rename to app/views/admin/cohorts/_usage_ping.html.haml diff --git a/app/views/instance_statistics/cohorts/index.html.haml b/app/views/admin/cohorts/index.html.haml similarity index 100% rename from app/views/instance_statistics/cohorts/index.html.haml rename to app/views/admin/cohorts/index.html.haml diff --git a/app/views/instance_statistics/conversational_development_index/_callout.html.haml b/app/views/admin/conversational_development_index/_callout.html.haml similarity index 100% rename from app/views/instance_statistics/conversational_development_index/_callout.html.haml rename to app/views/admin/conversational_development_index/_callout.html.haml diff --git a/app/views/instance_statistics/conversational_development_index/_card.html.haml b/app/views/admin/conversational_development_index/_card.html.haml similarity index 100% rename from app/views/instance_statistics/conversational_development_index/_card.html.haml rename to app/views/admin/conversational_development_index/_card.html.haml diff --git a/app/views/instance_statistics/conversational_development_index/_disabled.html.haml b/app/views/admin/conversational_development_index/_disabled.html.haml similarity index 100% rename from app/views/instance_statistics/conversational_development_index/_disabled.html.haml rename to app/views/admin/conversational_development_index/_disabled.html.haml diff --git a/app/views/instance_statistics/conversational_development_index/_no_data.html.haml b/app/views/admin/conversational_development_index/_no_data.html.haml similarity index 100% rename from app/views/instance_statistics/conversational_development_index/_no_data.html.haml rename to app/views/admin/conversational_development_index/_no_data.html.haml diff --git a/app/views/instance_statistics/conversational_development_index/index.html.haml b/app/views/admin/conversational_development_index/show.html.haml similarity index 100% rename from app/views/instance_statistics/conversational_development_index/index.html.haml rename to app/views/admin/conversational_development_index/show.html.haml diff --git a/app/views/layouts/instance_statistics.html.haml b/app/views/layouts/instance_statistics.html.haml deleted file mode 100644 index ec3e01600e5..00000000000 --- a/app/views/layouts/instance_statistics.html.haml +++ /dev/null @@ -1,6 +0,0 @@ -- page_title "Instance Statistics" -- header_title "Instance Statistics", instance_statistics_root_path -- nav "instance_statistics" -- @left_sidebar = true - -= render template: "layouts/application" diff --git a/app/views/layouts/nav/_dashboard.html.haml b/app/views/layouts/nav/_dashboard.html.haml index 0bab2cf3d2a..a71a4b13a7e 100644 --- a/app/views/layouts/nav/_dashboard.html.haml +++ b/app/views/layouts/nav/_dashboard.html.haml @@ -64,15 +64,11 @@ = link_to '#', class: 'dashboard-shortcuts-web-ide', title: _('Web IDE') do = _('Web IDE') - - if Gitlab::Sherlock.enabled? || can?(current_user, :read_instance_statistics) + - if current_user.admin? || Gitlab::Sherlock.enabled? %li.line-separator.d-none.d-sm-block - - if can?(current_user, :read_instance_statistics) - = nav_link(controller: [:conversational_development_index, :cohorts]) 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 current_user.admin? = 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 + = 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) - if Gitlab::Sherlock.enabled? %li diff --git a/app/views/layouts/nav/sidebar/_admin.html.haml b/app/views/layouts/nav/sidebar/_admin.html.haml index ff25b040913..0047efa363d 100644 --- a/app/views/layouts/nav/sidebar/_admin.html.haml +++ b/app/views/layouts/nav/sidebar/_admin.html.haml @@ -7,14 +7,14 @@ .sidebar-context-title = _('Admin Area') %ul.sidebar-top-level-items - = nav_link(controller: %w(dashboard admin projects users groups jobs runners gitaly_servers), html_options: {class: 'home'}) do + = nav_link(controller: %w(dashboard admin projects users groups jobs runners gitaly_servers cohorts conversational_development_index), html_options: {class: 'home'}) do = link_to admin_root_path, class: 'shortcuts-tree' do .nav-icon-container = sprite_icon('overview') %span.nav-item-name = _('Overview') %ul.sidebar-sub-level-items - = nav_link(controller: %w(dashboard admin projects users groups jobs runners gitaly_servers), html_options: { class: "fly-out-top-item" } ) do + = nav_link(controller: %w(dashboard admin projects users groups jobs runners gitaly_servers cohorts conversational_development_index), html_options: { class: "fly-out-top-item" } ) do = link_to admin_root_path do %strong.fly-out-top-item-name = _('Overview') @@ -47,6 +47,14 @@ = link_to admin_gitaly_servers_path, title: 'Gitaly Servers' do %span = _('Gitaly Servers') + = nav_link path: 'cohorts#index' do + = link_to admin_cohorts_path, title: _('Cohorts') do + %span + = _('Cohorts') + = nav_link(controller: :conversational_development_index) do + = link_to admin_conversational_development_index_path, title: _('ConvDev Index') do + %span + = _('ConvDev Index') = nav_link(controller: %w(system_info background_jobs logs health_check requests_profiles)) do = link_to admin_system_info_path do diff --git a/app/views/layouts/nav/sidebar/_instance_statistics.html.haml b/app/views/layouts/nav/sidebar/_instance_statistics.html.haml deleted file mode 100644 index cb64c97f7b4..00000000000 --- a/app/views/layouts/nav/sidebar/_instance_statistics.html.haml +++ /dev/null @@ -1,33 +0,0 @@ -.nav-sidebar{ class: ("sidebar-collapsed-desktop" if collapsed_sidebar?) } - .nav-sidebar-inner-scroll - .context-header - = link_to instance_statistics_root_path, title: 'Instance Statistics' do - .avatar-container.s40.settings-avatar - = sprite_icon('chart', size: 24) - .sidebar-context-title Instance Statistics - %ul.sidebar-top-level-items - = nav_link(controller: :conversational_development_index) do - = link_to instance_statistics_conversational_development_index_index_path do - .nav-icon-container - = sprite_icon('comment') - %span.nav-item-name - = _('ConvDev Index') - %ul.sidebar-sub-level-items.is-fly-out-only - = nav_link(controller: :conversational_development_index, html_options: { class: "fly-out-top-item" } ) do - = link_to instance_statistics_conversational_development_index_index_path do - %strong.fly-out-top-item-name - = _('ConvDev Index') - - = nav_link(controller: :cohorts) do - = link_to instance_statistics_cohorts_path do - .nav-icon-container - = sprite_icon('users') - %span.nav-item-name - = _('Cohorts') - %ul.sidebar-sub-level-items.is-fly-out-only - = nav_link(controller: :cohorts, html_options: { class: "fly-out-top-item" } ) do - = link_to instance_statistics_cohorts_path do - %strong.fly-out-top-item-name - = _('Cohorts') - - = render 'shared/sidebar_toggle_button' diff --git a/changelogs/unreleased/41416-making-instance-wide-data-tools-more-accessible.yml b/changelogs/unreleased/41416-making-instance-wide-data-tools-more-accessible.yml deleted file mode 100644 index 38fd9b2b9ba..00000000000 --- a/changelogs/unreleased/41416-making-instance-wide-data-tools-more-accessible.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Allow non-admins to view instance statistics (if permitted by the instance admins) -merge_request: 20679 -author: -type: changed diff --git a/config/routes.rb b/config/routes.rb index 63e40a31b76..e0a9139b1b4 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -70,8 +70,6 @@ Rails.application.routes.draw do get 'ide' => 'ide#index' get 'ide/*vueroute' => 'ide#index', format: false - - draw :instance_statistics end # Koding route diff --git a/config/routes/admin.rb b/config/routes/admin.rb index 7ee960970f8..109f00631fb 100644 --- a/config/routes/admin.rb +++ b/config/routes/admin.rb @@ -76,6 +76,8 @@ namespace :admin do resource :system_info, controller: 'system_info', only: [:show] resources :requests_profiles, only: [:index, :show], param: :name, constraints: { name: /.+\.html/ } + get 'conversational_development_index' => 'conversational_development_index#show' + resources :projects, only: [:index] scope(path: 'projects/*namespace_id', @@ -121,6 +123,8 @@ namespace :admin do end end + resources :cohorts, only: :index + resources :jobs, only: :index do collection do post :cancel_all diff --git a/config/routes/instance_statistics.rb b/config/routes/instance_statistics.rb deleted file mode 100644 index d8516649bc8..00000000000 --- a/config/routes/instance_statistics.rb +++ /dev/null @@ -1,6 +0,0 @@ -namespace :instance_statistics do - root to: redirect('/-/instance_statistics/conversational_development_index') - - resources :cohorts, only: :index - resources :conversational_development_index, only: :index -end 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 deleted file mode 100644 index 9d5f4c15eb9..00000000000 --- a/db/migrate/20180718005113_add_instance_statistics_visibility_to_application_setting.rb +++ /dev/null @@ -1,18 +0,0 @@ -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 diff --git a/db/schema.rb b/db/schema.rb index fbacff19591..8ae0197d1b4 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -168,7 +168,6 @@ ActiveRecord::Schema.define(version: 20180722103201) 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 end create_table "audit_events", force: :cascade do |t| diff --git a/doc/api/settings.md b/doc/api/settings.md index 68fc56b1fa3..b6f2101fc7b 100644 --- a/doc/api/settings.md +++ b/doc/api/settings.md @@ -55,8 +55,7 @@ Example response: "ed25519_key_restriction": 0, "enforce_terms": true, "terms": "Hello world!", - "performance_bar_allowed_group_id": 42, - "instance_statistics_visibility_private": false + "performance_bar_allowed_group_id": 42 } ``` @@ -160,7 +159,6 @@ PUT /application/settings | `version_check_enabled` | boolean | no | Let GitLab inform you when an update is available. | | `enforce_terms` | boolean | no | Enforce application ToS to all users | | `terms` | text | yes (if `enforce_terms` is true) | Markdown content for the ToS | -| `instance_statistics_visibility_private` | boolean | no | When set to `true` Instance statistics will only be available to admins | ```bash curl --request PUT --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v4/application/settings?signup_enabled=false&default_project_visibility=internal @@ -205,7 +203,6 @@ Example response: "ed25519_key_restriction": 0, "enforce_terms": true, "terms": "Hello world!", - "performance_bar_allowed_group_id": 42, - "instance_statistics_visibility_private": false + "performance_bar_allowed_group_id": 42 } ``` diff --git a/lib/api/settings.rb b/lib/api/settings.rb index 19d5e66c77e..1ca7d23203b 100644 --- a/lib/api/settings.rb +++ b/lib/api/settings.rb @@ -130,7 +130,6 @@ module API optional :gitaly_timeout_medium, type: Integer, desc: 'Medium Gitaly timeout, in seconds. Set to 0 to disable timeouts.' optional :gitaly_timeout_fast, type: Integer, desc: 'Gitaly fast operation timeout, in seconds. Set to 0 to disable timeouts.' optional :usage_ping_enabled, type: Boolean, desc: 'Every week GitLab will report license usage back to GitLab, Inc.' - optional :instance_statistics_visibility_private, type: Boolean, desc: 'When set to `true` Instance statistics will only be available to admins' ApplicationSetting::SUPPORTED_KEY_TYPES.each do |type| optional :"#{type}_key_restriction", diff --git a/spec/controllers/instance_statistics/cohorts_controller_spec.rb b/spec/controllers/instance_statistics/cohorts_controller_spec.rb deleted file mode 100644 index e4eedede93a..00000000000 --- a/spec/controllers/instance_statistics/cohorts_controller_spec.rb +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -describe InstanceStatistics::CohortsController do - it_behaves_like 'instance statistics availability' -end diff --git a/spec/controllers/instance_statistics/conversational_development_index_controller_spec.rb b/spec/controllers/instance_statistics/conversational_development_index_controller_spec.rb deleted file mode 100644 index 4935cb265bf..00000000000 --- a/spec/controllers/instance_statistics/conversational_development_index_controller_spec.rb +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -describe InstanceStatistics::ConversationalDevelopmentIndexController do - it_behaves_like 'instance statistics availability' -end diff --git a/spec/features/instance_statistics/cohorts_spec.rb b/spec/features/admin/admin_cohorts_spec.rb similarity index 75% rename from spec/features/instance_statistics/cohorts_spec.rb rename to spec/features/admin/admin_cohorts_spec.rb index 81fc5eff980..9dce9494b97 100644 --- a/spec/features/instance_statistics/cohorts_spec.rb +++ b/spec/features/admin/admin_cohorts_spec.rb @@ -1,6 +1,6 @@ require 'rails_helper' -describe 'Cohorts page' do +describe 'Admin cohorts page' do before do sign_in(create(:admin)) end @@ -8,7 +8,7 @@ describe 'Cohorts page' do it 'See users count per month' do 2.times { create(:user) } - visit instance_statistics_cohorts_path + visit admin_cohorts_path expect(page).to have_content("#{Time.now.strftime('%b %Y')} 3 0") end diff --git a/spec/features/instance_statistics/conversational_development_index_spec.rb b/spec/features/admin/admin_conversational_development_index_spec.rb similarity index 75% rename from spec/features/instance_statistics/conversational_development_index_spec.rb rename to spec/features/admin/admin_conversational_development_index_spec.rb index d441a7a5af9..2d2c7df5364 100644 --- a/spec/features/instance_statistics/conversational_development_index_spec.rb +++ b/spec/features/admin/admin_conversational_development_index_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe 'Conversational Development Index' do +describe 'Admin Conversational Development Index' do before do sign_in(create(:admin)) end @@ -9,7 +9,7 @@ describe 'Conversational Development Index' do it 'shows empty state' do stub_application_setting(usage_ping_enabled: false) - visit instance_statistics_conversational_development_index_index_path + visit admin_conversational_development_index_path expect(page).to have_content('Usage ping is not enabled') end @@ -19,7 +19,7 @@ describe 'Conversational Development Index' do it 'shows empty state' do stub_application_setting(usage_ping_enabled: true) - visit instance_statistics_conversational_development_index_index_path + visit admin_conversational_development_index_path expect(page).to have_content('Data is still calculating') end @@ -30,7 +30,7 @@ describe 'Conversational Development Index' do stub_application_setting(usage_ping_enabled: true) create(:conversational_development_index_metric) - visit instance_statistics_conversational_development_index_index_path + visit admin_conversational_development_index_path expect(page).to have_content( 'Issues created per active user 1.2 You 9.3 Lead 13.3%' diff --git a/spec/features/dashboard/active_tab_spec.rb b/spec/features/dashboard/active_tab_spec.rb index f4d0f82d248..8bab501134b 100644 --- a/spec/features/dashboard/active_tab_spec.rb +++ b/spec/features/dashboard/active_tab_spec.rb @@ -7,38 +7,32 @@ RSpec.describe 'Dashboard Active Tab', :js do shared_examples 'page has active tab' do |title| it "#{title} tab" do - subject - expect(page).to have_selector('.navbar-sub-nav li.active', count: 1) expect(find('.navbar-sub-nav li.active')).to have_content(title) end end context 'on dashboard projects' do - it_behaves_like 'page has active tab', 'Projects' do - subject { visit dashboard_projects_path } + before do + visit dashboard_projects_path end + + it_behaves_like 'page has active tab', 'Projects' end context 'on dashboard groups' do - it_behaves_like 'page has active tab', 'Groups' do - subject { visit dashboard_groups_path } + before do + visit dashboard_groups_path end + + it_behaves_like 'page has active tab', 'Groups' end context 'on activity projects' do - it_behaves_like 'page has active tab', 'Activity' do - subject { visit activity_dashboard_path } + before do + visit activity_dashboard_path end - end - context 'on instance statistics' do - subject { visit instance_statistics_root_path } - - it 'shows Instance Statistics` as active' do - subject - - expect(find('.navbar-sub-nav li.active')).to have_link('Instance Statistics') - end + it_behaves_like 'page has active tab', 'Activity' end end diff --git a/spec/features/dashboard/instance_statistics_spec.rb b/spec/features/dashboard/instance_statistics_spec.rb deleted file mode 100644 index 21ee2796bd8..00000000000 --- a/spec/features/dashboard/instance_statistics_spec.rb +++ /dev/null @@ -1,60 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -describe 'Showing instance statistics' do - before do - sign_in user if user - end - - # Using a path that is publicly accessible - subject { visit explore_projects_path } - - context 'for unauthenticated users' do - let(:user) { nil } - - it 'does not show the instance statistics link' do - subject - - expect(page).not_to have_link('Instance Statistics') - end - end - - context 'for regular users' do - let(:user) { create(:user) } - - context 'when instance statistics are publicly available' do - before do - stub_application_setting(instance_statistics_visibility_private: false) - end - - it 'shows the instance statistics link' do - subject - - expect(page).to have_link('Instance Statistics') - end - end - - context 'when instance statistics are not publicly available' do - before do - stub_application_setting(instance_statistics_visibility_private: true) - end - - it 'shows the instance statistics link' do - subject - - expect(page).not_to have_link('Instance Statistics') - end - end - end - - context 'for admins' do - let(:user) { create(:admin) } - - it 'shows the instance statistics link' do - subject - - expect(page).to have_link('Instance Statistics') - end - end -end diff --git a/spec/policies/global_policy_spec.rb b/spec/policies/global_policy_spec.rb index 30d68e7dc9d..a2047b54deb 100644 --- a/spec/policies/global_policy_spec.rb +++ b/spec/policies/global_policy_spec.rb @@ -180,38 +180,4 @@ describe GlobalPolicy do end end end - - describe 'read instance statistics' do - context 'regular user' do - it { is_expected.to be_allowed(:read_instance_statistics) } - - context 'when instance statistics are set to private' do - before do - stub_application_setting(instance_statistics_visibility_private: true) - end - - it { is_expected.not_to be_allowed(:read_instance_statistics) } - end - end - - context 'admin' do - let(:current_user) { create(:admin) } - - it { is_expected.to be_allowed(:read_instance_statistics) } - - context 'when instance statistics are set to private' do - before do - stub_application_setting(instance_statistics_visibility_private: true) - end - - it { is_expected.to be_allowed(:read_instance_statistics) } - end - end - - context 'anonymous' do - let(:current_user) { nil } - - it { is_expected.not_to be_allowed(:read_instance_statistics) } - end - end end diff --git a/spec/requests/api/settings_spec.rb b/spec/requests/api/settings_spec.rb index 3e0f47b84a1..57adc3ca7a6 100644 --- a/spec/requests/api/settings_spec.rb +++ b/spec/requests/api/settings_spec.rb @@ -25,7 +25,6 @@ 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).not_to have_key('performance_bar_allowed_group_path') expect(json_response).not_to have_key('performance_bar_enabled') end @@ -65,8 +64,7 @@ describe API::Settings, 'Settings' do circuitbreaker_check_interval: 2, enforce_terms: true, terms: 'Hello world!', - performance_bar_allowed_group_path: group.full_path, - instance_statistics_visibility_private: true + performance_bar_allowed_group_path: group.full_path expect(response).to have_gitlab_http_status(200) expect(json_response['default_projects_limit']).to eq(3) @@ -91,7 +89,6 @@ describe API::Settings, 'Settings' do expect(json_response['enforce_terms']).to be(true) expect(json_response['terms']).to eq('Hello world!') expect(json_response['performance_bar_allowed_group_id']).to eq(group.id) - expect(json_response['instance_statistics_visibility_private']).to be(true) end end diff --git a/spec/routing/instance_statistics_routing_spec.rb b/spec/routing/instance_statistics_routing_spec.rb deleted file mode 100644 index b94faabfa1d..00000000000 --- a/spec/routing/instance_statistics_routing_spec.rb +++ /dev/null @@ -1,11 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -describe 'Instance Statistics', 'routing' do - include RSpec::Rails::RequestExampleGroup - - it "routes '/-/instance_statistics' to conversational development index" do - expect(get('/-/instance_statistics')).to redirect_to('/-/instance_statistics/conversational_development_index') - end -end diff --git a/spec/support/shared_examples/instance_statistics_controllers_shared_examples.rb b/spec/support/shared_examples/instance_statistics_controllers_shared_examples.rb deleted file mode 100644 index 5334af841e1..00000000000 --- a/spec/support/shared_examples/instance_statistics_controllers_shared_examples.rb +++ /dev/null @@ -1,37 +0,0 @@ -# frozen_string_literal: true - -shared_examples 'instance statistics availability' do - let(:user) { create(:user) } - - before do - sign_in(user) - end - - describe 'GET #index' do - it 'is available when the feature is available publicly' do - get :index - - expect(response).to have_gitlab_http_status(:success) - end - - it 'renders a 404 when the feature is not available publicly' do - stub_application_setting(instance_statistics_visibility_private: true) - - get :index - - expect(response).to have_gitlab_http_status(:not_found) - end - - context 'for admins' do - let(:user) { create(:admin) } - - it 'allows access when the feature is not available publicly' do - stub_application_setting(instance_statistics_visibility_private: true) - - get :index - - expect(response).to have_gitlab_http_status(:success) - end - end - end -end -- GitLab