Hide 'peek' by using 'performance bar' instead

Signed-off-by: Rémy Coutable <remy@rymai.me>
This commit is contained in:
Rémy Coutable 2017-06-30 17:34:06 +02:00
parent c8ce1f0d5d
commit 19b8d8af2c
7 changed files with 32 additions and 41 deletions

View File

@ -3,6 +3,8 @@ module WithPerformanceBar
included do included do
include Peek::Rblineprof::CustomControllerHelpers include Peek::Rblineprof::CustomControllerHelpers
alias_method :performance_bar_enabled?, :peek_enabled?
helper_method :performance_bar_enabled?
end end
def peek_enabled? def peek_enabled?

View File

@ -23,7 +23,7 @@ module NavHelper
def nav_header_class def nav_header_class
class_name = '' class_name = ''
class_name << " with-horizontal-nav" if defined?(nav) && nav class_name << " with-horizontal-nav" if defined?(nav) && nav
class_name << " with-peek" if peek_enabled? class_name << " with-peek" if performance_bar_enabled?
class_name class_name
end end

View File

@ -30,7 +30,7 @@
= stylesheet_link_tag "application", media: "all" = stylesheet_link_tag "application", media: "all"
= stylesheet_link_tag "print", media: "print" = stylesheet_link_tag "print", media: "print"
= stylesheet_link_tag "test", media: "all" if Rails.env.test? = stylesheet_link_tag "test", media: "all" if Rails.env.test?
= stylesheet_link_tag 'peek' if peek_enabled? = stylesheet_link_tag 'peek' if performance_bar_enabled?
- if show_new_nav? - if show_new_nav?
= stylesheet_link_tag "new_nav", media: "all" = stylesheet_link_tag "new_nav", media: "all"
@ -44,7 +44,7 @@
= webpack_bundle_tag "main" = webpack_bundle_tag "main"
= webpack_bundle_tag "raven" if current_application_settings.clientside_sentry_enabled = webpack_bundle_tag "raven" if current_application_settings.clientside_sentry_enabled
= webpack_bundle_tag "test" if Rails.env.test? = webpack_bundle_tag "test" if Rails.env.test?
= webpack_bundle_tag 'peek' if peek_enabled? = webpack_bundle_tag 'peek' if performance_bar_enabled?
- if content_for?(:page_specific_javascripts) - if content_for?(:page_specific_javascripts)
= yield :page_specific_javascripts = yield :page_specific_javascripts

View File

@ -3,4 +3,6 @@ require 'flipper/middleware/memoizer'
unless Rails.env.test? unless Rails.env.test?
Rails.application.config.middleware.use Flipper::Middleware::Memoizer, Rails.application.config.middleware.use Flipper::Middleware::Memoizer,
lambda { Feature.flipper } lambda { Feature.flipper }
Feature.register_feature_groups
end end

View File

@ -54,15 +54,13 @@ class Feature
adapter = Flipper::Adapters::ActiveRecord.new( adapter = Flipper::Adapters::ActiveRecord.new(
feature_class: FlipperFeature, gate_class: FlipperGate) feature_class: FlipperFeature, gate_class: FlipperGate)
Flipper.new(adapter).tap do Flipper.new(adapter)
register_feature_groups
end
end end
end end
def register_feature_groups def register_feature_groups
Flipper.register(:performance_team) do |actor| Flipper.register(:performance_team) do |actor|
Gitlab::PerformanceBar.allowed_actor?(actor) actor.thing&.is_a?(User) && Gitlab::PerformanceBar.allowed_user?(actor.thing)
end end
end end
end end

View File

@ -4,15 +4,15 @@ module Gitlab
Feature.enabled?(:gitlab_performance_bar, current_user) Feature.enabled?(:gitlab_performance_bar, current_user)
end end
def self.allowed_actor?(actor) def self.allowed_user?(user)
return false unless actor.thing&.is_a?(User) && allowed_group return false unless allowed_group
if RequestStore.active? if RequestStore.active?
RequestStore.fetch('performance_bar:user_member_of_allowed_group') do RequestStore.fetch('performance_bar:user_member_of_allowed_group') do
user_member_of_allowed_group?(actor.thing) user_member_of_allowed_group?(user)
end end
else else
user_member_of_allowed_group?(actor.thing) user_member_of_allowed_group?(user)
end end
end end
@ -29,10 +29,7 @@ module Gitlab
end end
def self.user_member_of_allowed_group?(user) def self.user_member_of_allowed_group?(user)
GroupMembersFinder.new(allowed_group) GroupMembersFinder.new(allowed_group).execute.exists?(user_id: user.id)
.execute
.where(user_id: user.id)
.any?
end end
end end
end end

View File

@ -25,43 +25,35 @@ describe Gitlab::PerformanceBar do
end end
end end
describe '.allowed_actor?' do describe '.allowed_user?' do
it 'returns false when given actor is not a User' do let(:user) { create(:user) }
actor = double('actor', thing: double)
expect(described_class.allowed_actor?(actor)).to be_falsy before do
stub_performance_bar_setting(allowed_group: 'my-group')
end end
context 'when given actor is a User' do context 'when allowed group does not exist' do
let(:actor) { double('actor', thing: create(:user)) } it 'returns false' do
expect(described_class.allowed_user?(user)).to be_falsy
before do
stub_performance_bar_setting(allowed_group: 'my-group')
end end
end
context 'when allowed group does not exist' do context 'when allowed group exists' do
let!(:my_group) { create(:group, path: 'my-group') }
context 'when user is not a member of the allowed group' do
it 'returns false' do it 'returns false' do
expect(described_class.allowed_actor?(actor)).to be_falsy expect(described_class.allowed_user?(user)).to be_falsy
end end
end end
context 'when allowed group exists' do context 'when user is a member of the allowed group' do
let!(:my_group) { create(:group, path: 'my-group') } before do
my_group.add_developer(user)
context 'when user is not a member of the allowed group' do
it 'returns false' do
expect(described_class.allowed_actor?(actor)).to be_falsy
end
end end
context 'when user is a member of the allowed group' do it 'returns true' do
before do expect(described_class.allowed_user?(user)).to be_truthy
my_group.add_developer(actor.thing)
end
it 'returns true' do
expect(described_class.allowed_actor?(actor)).to be_truthy
end
end end
end end
end end