Class: Routing::PseudonymizationHelper::MaskHelper

Inherits:
Object
  • Object
show all
Defined in:
app/helpers/routing/pseudonymization_helper.rb

Constant Summary collapse

QUERY_PARAMS_TO_NOT_MASK =
%w[
  scope
  severity
  sortBy
  sortDesc
  state
  tab
  glm_source
  glm_content
  _gl
  utm_medium
  utm_source
  utm_campaign
  utm_content
  utm_budget
].freeze

Instance Method Summary collapse

Constructor Details

#initialize(request_object, group, project) ⇒ MaskHelper

Returns a new instance of MaskHelper.



23
24
25
26
27
# File 'app/helpers/routing/pseudonymization_helper.rb', line 23

def initialize(request_object, group, project)
  @request = request_object
  @group = group
  @project = project
end

Instance Method Details

#mask_paramsObject



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'app/helpers/routing/pseudonymization_helper.rb', line 29

def mask_params
  return @request.original_url unless has_maskable_params?

  masked_params = @request.path_parameters.to_h do |key, value|
    case key
    when :project_id
      [key, "project#{@project&.id}"]
    when :namespace_id, :group_id
      namespace = @group || @project&.namespace
      [key, "namespace#{namespace&.id}"]
    when :id
      [key, mask_id(value)]
    else
      [key, value]
    end
  end

  Gitlab::Routing.url_helpers.url_for(masked_params.merge(params: masked_query_params))
end