2020-08-18 14:10:10 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module API
|
|
|
|
module Helpers
|
|
|
|
module PerformanceBarHelpers
|
|
|
|
def set_peek_enabled_for_current_request
|
2021-04-27 08:10:12 -04:00
|
|
|
Gitlab::SafeRequestStore.fetch(:peek_enabled) { perf_bar_cookie_enabled? && perf_bar_allowed_for_user? }
|
2020-08-18 14:10:10 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
def perf_bar_cookie_enabled?
|
|
|
|
cookies[:perf_bar_enabled] == 'true'
|
|
|
|
end
|
|
|
|
|
2021-04-27 08:10:12 -04:00
|
|
|
def perf_bar_allowed_for_user?
|
2020-08-18 14:10:10 -04:00
|
|
|
# We cannot use `current_user` here because that method raises an exception when the user
|
|
|
|
# is unauthorized and some API endpoints require that `current_user` is not called.
|
2021-04-27 08:10:12 -04:00
|
|
|
Gitlab::PerformanceBar.allowed_for_user?(find_user_from_sources)
|
2020-08-18 14:10:10 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|