diff options
author | Sean McGivern <sean@gitlab.com> | 2019-08-27 14:40:44 +0300 |
---|---|---|
committer | Sean McGivern <sean@gitlab.com> | 2019-08-28 19:25:02 +0300 |
commit | f9c456bd0c34002952fa4ac812068b38258b108d (patch) | |
tree | 2584e356752088e5d80cb544fda91d311af57457 /lib/gitlab/performance_bar.rb | |
parent | 7f102819a56b55607e657447b51d2eeb45b2fe94 (diff) |
Make performance bar enabled checks consistent
Previously, we called the `peek_enabled?` method like so:
prepend_before_action :set_peek_request_id, if: :peek_enabled?
Now we don't have a `set_peek_request_id` method, so we don't need that
line. However, the `peek_enabled?` part had a side-effect: it would also
populate the request store cache for whether the performance bar was
enabled for the current request or not.
This commit makes that side-effect explicit, and replaces all uses of
`peek_enabled?` with the more explicit
`Gitlab::PerformanceBar.enabled_for_request?`. There is one spec that
still sets `SafeRequestStore[:peek_enabled]` directly, because it is
contrasting behaviour with and without a request store enabled.
The upshot is:
1. We still set the value in one place. We make it more explicit that
that's what we're doing.
2. Reading that value uses a consistent method so it's easier to find in
future.
Diffstat (limited to 'lib/gitlab/performance_bar.rb')
-rw-r--r-- | lib/gitlab/performance_bar.rb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/gitlab/performance_bar.rb b/lib/gitlab/performance_bar.rb index 07439d8e011..68af290d069 100644 --- a/lib/gitlab/performance_bar.rb +++ b/lib/gitlab/performance_bar.rb @@ -6,7 +6,11 @@ module Gitlab EXPIRY_TIME_L1_CACHE = 1.minute EXPIRY_TIME_L2_CACHE = 5.minutes - def self.enabled?(user = nil) + def self.enabled_for_request? + Gitlab::SafeRequestStore[:peek_enabled] + end + + def self.enabled_for_user?(user = nil) return true if Rails.env.development? return true if user&.admin? return false unless user && allowed_group_id |