Module: NamespacesHelper

Defined in:
app/helpers/namespaces_helper.rb

Instance Method Summary collapse

Instance Method Details

#cascading_namespace_setting_locked?(attribute, group, **args) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
34
35
36
37
38
# File 'app/helpers/namespaces_helper.rb', line 31

def cascading_namespace_setting_locked?(attribute, group, **args)
  return false if group.nil?

  method_name = "#{attribute}_locked?"
  return false unless group.namespace_settings.respond_to?(method_name)

  group.namespace_settings.public_send(method_name, **args) # rubocop:disable GitlabSecurity/PublicSend
end

#cascading_namespace_settings_popover_data(attribute, group, settings_path_helper) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'app/helpers/namespaces_helper.rb', line 8

def cascading_namespace_settings_popover_data(attribute, group, settings_path_helper)
  locked_by_ancestor = group.namespace_settings.public_send("#{attribute}_locked_by_ancestor?") # rubocop:disable GitlabSecurity/PublicSend

  popover_data = {
    locked_by_application_setting: group.namespace_settings.public_send("#{attribute}_locked_by_application_setting?"), # rubocop:disable GitlabSecurity/PublicSend
    locked_by_ancestor: locked_by_ancestor
  }

  if locked_by_ancestor
    ancestor_namespace = group.namespace_settings.public_send("#{attribute}_locked_ancestor").namespace # rubocop:disable GitlabSecurity/PublicSend

    popover_data[:ancestor_namespace] = {
      full_name: ancestor_namespace.full_name,
      path: settings_path_helper.call(ancestor_namespace)
    }
  end

  {
    popover_data: popover_data.to_json,
    testid: 'cascading-settings-lock-icon'
  }
end

#namespace_id_from(params) ⇒ Object



4
5
6
# File 'app/helpers/namespaces_helper.rb', line 4

def namespace_id_from(params)
  params.dig(:project, :namespace_id) || params[:namespace_id]
end

#pipeline_usage_app_data(namespace) ⇒ Object



40
41
42
43
44
45
46
47
48
# File 'app/helpers/namespaces_helper.rb', line 40

def pipeline_usage_app_data(namespace)
  {
    namespace_actual_plan_name: namespace.actual_plan_name,
    namespace_path: namespace.full_path,
    namespace_id: namespace.id,
    user_namespace: namespace.user_namespace?.to_s,
    page_size: page_size
  }
end

#storage_usage_app_data(namespace) ⇒ Object



50
51
52
53
54
55
56
57
# File 'app/helpers/namespaces_helper.rb', line 50

def storage_usage_app_data(namespace)
  {
    namespace_id: namespace.id,
    namespace_path: namespace.full_path,
    user_namespace: namespace.user_namespace?.to_s,
    default_per_page: page_size
  }
end