2018-08-18 11:19:57 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2015-01-08 08:22:50 +00:00
|
|
|
module ApplicationSettingsHelper
|
2017-07-13 16:03:52 +00:00
|
|
|
extend self
|
2017-08-31 09:47:03 +00:00
|
|
|
|
2019-11-04 06:06:46 +00:00
|
|
|
delegate :allow_signup?,
|
|
|
|
:gravatar_enabled?,
|
|
|
|
:password_authentication_enabled_for_web?,
|
|
|
|
:akismet_enabled?,
|
|
|
|
to: :'Gitlab::CurrentSettings.current_application_settings'
|
2015-01-08 17:53:35 +00:00
|
|
|
|
2015-05-29 11:29:16 +00:00
|
|
|
def user_oauth_applications?
|
2018-02-02 18:39:55 +00:00
|
|
|
Gitlab::CurrentSettings.user_oauth_applications
|
2015-05-29 11:29:16 +00:00
|
|
|
end
|
|
|
|
|
2016-06-15 22:30:55 +00:00
|
|
|
def allowed_protocols_present?
|
2018-02-02 18:39:55 +00:00
|
|
|
Gitlab::CurrentSettings.enabled_git_access_protocol.present?
|
2016-06-15 22:30:55 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def enabled_protocol
|
2018-02-02 18:39:55 +00:00
|
|
|
case Gitlab::CurrentSettings.enabled_git_access_protocol
|
2016-06-15 22:30:55 +00:00
|
|
|
when 'http'
|
2019-01-03 21:17:44 +00:00
|
|
|
Gitlab.config.gitlab.protocol
|
2016-06-15 22:30:55 +00:00
|
|
|
when 'ssh'
|
|
|
|
'ssh'
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2021-02-17 03:08:59 +00:00
|
|
|
def kroki_available_formats
|
|
|
|
ApplicationSetting.kroki_formats_attributes.map do |key, value|
|
|
|
|
{
|
|
|
|
name: "kroki_formats_#{key}",
|
|
|
|
label: value[:label],
|
|
|
|
value: @application_setting.kroki_formats[key] || false
|
|
|
|
}
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2020-06-16 12:09:00 +00:00
|
|
|
def storage_weights
|
2021-03-11 15:09:10 +00:00
|
|
|
Gitlab.config.repositories.storages.keys.each_with_object(OpenStruct.new) do |storage, weights|
|
|
|
|
weights[storage.to_sym] = @application_setting.repository_storages_weighted[storage] || 0
|
2020-06-16 12:09:00 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2018-12-24 04:58:24 +00:00
|
|
|
def all_protocols_enabled?
|
|
|
|
Gitlab::CurrentSettings.enabled_git_access_protocol.blank?
|
|
|
|
end
|
|
|
|
|
|
|
|
def ssh_enabled?
|
|
|
|
all_protocols_enabled? || enabled_protocol == 'ssh'
|
|
|
|
end
|
|
|
|
|
|
|
|
def http_enabled?
|
2019-01-03 21:17:44 +00:00
|
|
|
all_protocols_enabled? || Gitlab::CurrentSettings.enabled_git_access_protocol == 'http'
|
2018-12-24 04:58:24 +00:00
|
|
|
end
|
|
|
|
|
2020-11-24 09:09:32 +00:00
|
|
|
def enabled_protocol_button(container, protocol)
|
2016-06-15 22:30:55 +00:00
|
|
|
case protocol
|
|
|
|
when 'ssh'
|
2020-11-24 09:09:32 +00:00
|
|
|
ssh_clone_button(container, append_link: false)
|
2016-06-15 22:30:55 +00:00
|
|
|
else
|
2020-11-24 09:09:32 +00:00
|
|
|
http_clone_button(container, append_link: false)
|
2016-06-15 22:30:55 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2015-03-01 15:06:46 +00:00
|
|
|
# Return a group of checkboxes that use Bootstrap's button plugin for a
|
|
|
|
# toggle button effect.
|
2018-06-04 21:55:31 +00:00
|
|
|
def restricted_level_checkboxes(help_block_id, checkbox_name, options = {})
|
2017-07-12 17:38:02 +00:00
|
|
|
Gitlab::VisibilityLevel.values.map do |level|
|
2015-03-01 15:06:46 +00:00
|
|
|
checked = restricted_visibility_levels(true).include?(level)
|
2016-11-14 19:26:37 +00:00
|
|
|
css_class = checked ? 'active' : ''
|
2017-07-05 10:45:58 +00:00
|
|
|
tag_name = "application_setting_visibility_level_#{level}"
|
2015-03-01 15:06:46 +00:00
|
|
|
|
2017-07-05 10:45:58 +00:00
|
|
|
label_tag(tag_name, class: css_class) do
|
2015-03-11 00:21:09 +00:00
|
|
|
check_box_tag(checkbox_name, level, checked,
|
|
|
|
autocomplete: 'off',
|
2016-11-14 19:26:37 +00:00
|
|
|
'aria-describedby' => help_block_id,
|
2018-06-04 21:55:31 +00:00
|
|
|
'class' => options[:class],
|
2017-07-12 17:38:02 +00:00
|
|
|
id: tag_name) + visibility_level_icon(level) + visibility_level_label(level)
|
2015-03-01 15:06:46 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2015-08-12 06:13:20 +00:00
|
|
|
|
|
|
|
# Return a group of checkboxes that use Bootstrap's button plugin for a
|
|
|
|
# toggle button effect.
|
2018-06-04 21:55:31 +00:00
|
|
|
def import_sources_checkboxes(help_block_id, options = {})
|
2015-08-12 06:13:20 +00:00
|
|
|
Gitlab::ImportSources.options.map do |name, source|
|
2019-07-01 23:44:54 +00:00
|
|
|
checked = @application_setting.import_sources.include?(source)
|
2016-11-19 14:44:06 +00:00
|
|
|
css_class = checked ? 'active' : ''
|
2015-08-12 06:13:20 +00:00
|
|
|
checkbox_name = 'application_setting[import_sources][]'
|
|
|
|
|
2016-11-19 14:44:06 +00:00
|
|
|
label_tag(name, class: css_class) do
|
2015-08-12 06:13:20 +00:00
|
|
|
check_box_tag(checkbox_name, source, checked,
|
|
|
|
autocomplete: 'off',
|
2016-11-19 14:44:06 +00:00
|
|
|
'aria-describedby' => help_block_id,
|
2018-06-04 21:55:31 +00:00
|
|
|
'class' => options[:class],
|
2016-11-19 14:44:06 +00:00
|
|
|
id: name.tr(' ', '_')) + name
|
2015-08-12 06:13:20 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2016-05-04 10:33:33 +00:00
|
|
|
|
2016-05-12 10:43:12 +00:00
|
|
|
def oauth_providers_checkboxes
|
2016-05-04 10:33:33 +00:00
|
|
|
button_based_providers.map do |source|
|
2019-07-01 23:44:54 +00:00
|
|
|
disabled = @application_setting.disabled_oauth_sign_in_sources.include?(source.to_s)
|
2018-04-13 15:54:08 +00:00
|
|
|
name = Gitlab::Auth::OAuth::Provider.label_for(source)
|
2021-03-12 21:09:12 +00:00
|
|
|
checkbox_name = 'application_setting[enabled_oauth_sign_in_sources][]'
|
|
|
|
checkbox_id = "application_setting_enabled_oauth_sign_in_sources_#{name.parameterize(separator: '_')}"
|
|
|
|
|
|
|
|
content_tag :div, class: 'form-check' do
|
|
|
|
check_box_tag(
|
|
|
|
checkbox_name,
|
|
|
|
source,
|
|
|
|
!disabled,
|
|
|
|
autocomplete: 'off',
|
|
|
|
id: checkbox_id,
|
|
|
|
class: 'form-check-input'
|
|
|
|
) +
|
|
|
|
label_tag(checkbox_id, name, class: 'form-check-label')
|
2016-05-04 10:33:33 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2016-06-30 03:35:00 +00:00
|
|
|
|
2017-08-25 13:08:48 +00:00
|
|
|
def key_restriction_options_for_select(type)
|
|
|
|
bit_size_options = Gitlab::SSHPublicKey.supported_sizes(type).map do |bits|
|
|
|
|
["Must be at least #{bits} bits", bits]
|
2017-08-21 10:30:03 +00:00
|
|
|
end
|
2017-08-25 13:08:48 +00:00
|
|
|
|
|
|
|
[
|
|
|
|
['Are allowed', 0],
|
|
|
|
*bit_size_options,
|
|
|
|
['Are forbidden', ApplicationSetting::FORBIDDEN_KEY_VALUE]
|
|
|
|
]
|
2017-08-21 10:30:03 +00:00
|
|
|
end
|
|
|
|
|
2020-02-12 18:09:21 +00:00
|
|
|
def repository_storages_options_json
|
|
|
|
options = Gitlab.config.repositories.storages.map do |name, storage|
|
|
|
|
{
|
|
|
|
label: "#{name} - #{storage['gitaly_address']}",
|
|
|
|
value: name
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
|
|
|
options.to_json
|
|
|
|
end
|
|
|
|
|
2019-04-09 15:38:58 +00:00
|
|
|
def external_authorization_description
|
|
|
|
_("If enabled, access to projects will be validated on an external service"\
|
|
|
|
" using their classification label.")
|
|
|
|
end
|
|
|
|
|
|
|
|
def external_authorization_timeout_help_text
|
|
|
|
_("Time in seconds GitLab will wait for a response from the external "\
|
|
|
|
"service. When the service does not respond in time, access will be "\
|
|
|
|
"denied.")
|
|
|
|
end
|
|
|
|
|
|
|
|
def external_authorization_url_help_text
|
|
|
|
_("When leaving the URL blank, classification labels can still be "\
|
|
|
|
"specified without disabling cross project features or performing "\
|
|
|
|
"external authorization checks.")
|
|
|
|
end
|
|
|
|
|
|
|
|
def external_authorization_client_certificate_help_text
|
|
|
|
_("The X509 Certificate to use when mutual TLS is required to communicate "\
|
|
|
|
"with the external authorization service. If left blank, the server "\
|
|
|
|
"certificate is still validated when accessing over HTTPS.")
|
|
|
|
end
|
|
|
|
|
|
|
|
def external_authorization_client_key_help_text
|
|
|
|
_("The private key to use when a client certificate is provided. This value "\
|
|
|
|
"is encrypted at rest.")
|
|
|
|
end
|
|
|
|
|
|
|
|
def external_authorization_client_pass_help_text
|
|
|
|
_("The passphrase required to decrypt the private key. This is optional "\
|
|
|
|
"and the value is encrypted at rest.")
|
|
|
|
end
|
|
|
|
|
2017-07-13 16:03:52 +00:00
|
|
|
def visible_attributes
|
2020-10-02 21:08:18 +00:00
|
|
|
[
|
2020-09-26 00:09:35 +00:00
|
|
|
:abuse_notification_email,
|
2021-03-18 00:08:58 +00:00
|
|
|
:admin_mode,
|
2017-07-13 16:03:52 +00:00
|
|
|
:after_sign_out_path,
|
|
|
|
:after_sign_up_text,
|
|
|
|
:akismet_api_key,
|
|
|
|
:akismet_enabled,
|
2019-08-01 13:22:54 +00:00
|
|
|
:allow_local_requests_from_hooks_and_services,
|
2019-07-26 10:21:52 +00:00
|
|
|
:allow_local_requests_from_web_hooks_and_services,
|
|
|
|
:allow_local_requests_from_system_hooks,
|
2019-05-29 16:43:07 +00:00
|
|
|
:dns_rebinding_protection_enabled,
|
2018-10-23 10:58:41 +00:00
|
|
|
:archive_builds_in_human_readable,
|
2019-02-20 23:51:55 +00:00
|
|
|
:asset_proxy_enabled,
|
|
|
|
:asset_proxy_secret_key,
|
|
|
|
:asset_proxy_url,
|
2021-02-03 06:10:04 +00:00
|
|
|
:asset_proxy_allowlist,
|
2019-07-22 14:56:40 +00:00
|
|
|
:static_objects_external_storage_auth_token,
|
|
|
|
:static_objects_external_storage_url,
|
2017-05-30 23:24:45 +00:00
|
|
|
:authorized_keys_enabled,
|
2017-08-24 11:01:33 +00:00
|
|
|
:auto_devops_enabled,
|
2018-01-22 18:31:03 +00:00
|
|
|
:auto_devops_domain,
|
2020-04-08 09:09:43 +00:00
|
|
|
:container_expiration_policies_enable_historic_entries,
|
2017-07-13 16:03:52 +00:00
|
|
|
:container_registry_token_expire_delay,
|
|
|
|
:default_artifacts_expire_in,
|
2020-07-01 21:08:51 +00:00
|
|
|
:default_branch_name,
|
2017-07-13 16:03:52 +00:00
|
|
|
:default_branch_protection,
|
2019-11-13 15:07:29 +00:00
|
|
|
:default_ci_config_path,
|
2017-07-13 16:03:52 +00:00
|
|
|
:default_group_visibility,
|
2019-04-05 18:49:46 +00:00
|
|
|
:default_project_creation,
|
2017-07-13 16:03:52 +00:00
|
|
|
:default_project_visibility,
|
|
|
|
:default_projects_limit,
|
|
|
|
:default_snippet_visibility,
|
2020-12-07 03:09:49 +00:00
|
|
|
:disable_feed_token,
|
2017-07-13 16:03:52 +00:00
|
|
|
:disabled_oauth_sign_in_sources,
|
2020-11-10 12:08:57 +00:00
|
|
|
:domain_denylist,
|
|
|
|
:domain_denylist_enabled,
|
2020-10-29 06:08:45 +00:00
|
|
|
# TODO Remove domain_denylist_raw in APIv5 (See https://gitlab.com/gitlab-org/gitlab-foss/issues/67204)
|
|
|
|
:domain_denylist_raw,
|
2020-11-10 12:08:57 +00:00
|
|
|
:domain_allowlist,
|
2020-10-29 06:08:45 +00:00
|
|
|
# TODO Remove domain_allowlist_raw in APIv5 (See https://gitlab.com/gitlab-org/gitlab-foss/issues/67204)
|
|
|
|
:domain_allowlist_raw,
|
|
|
|
:outbound_local_requests_allowlist_raw,
|
2017-08-25 13:08:48 +00:00
|
|
|
:dsa_key_restriction,
|
|
|
|
:ecdsa_key_restriction,
|
|
|
|
:ed25519_key_restriction,
|
2019-11-08 06:06:24 +00:00
|
|
|
:eks_integration_enabled,
|
|
|
|
:eks_account_id,
|
|
|
|
:eks_access_key_id,
|
|
|
|
:eks_secret_access_key,
|
2017-07-13 16:03:52 +00:00
|
|
|
:email_author_in_body,
|
|
|
|
:enabled_git_access_protocol,
|
2018-07-30 10:16:54 +00:00
|
|
|
:enforce_terms,
|
2021-04-16 00:09:09 +00:00
|
|
|
:external_pipeline_validation_service_timeout,
|
|
|
|
:external_pipeline_validation_service_token,
|
|
|
|
:external_pipeline_validation_service_url,
|
2019-01-10 21:06:42 +00:00
|
|
|
:first_day_of_week,
|
2021-05-07 09:10:27 +00:00
|
|
|
:floc_enabled,
|
2020-01-14 18:08:31 +00:00
|
|
|
:force_pages_access_control,
|
2017-11-29 09:12:12 +00:00
|
|
|
:gitaly_timeout_default,
|
|
|
|
:gitaly_timeout_medium,
|
|
|
|
:gitaly_timeout_fast,
|
2020-09-16 18:09:47 +00:00
|
|
|
:gitpod_enabled,
|
|
|
|
:gitpod_url,
|
2019-07-03 16:09:51 +00:00
|
|
|
:grafana_enabled,
|
|
|
|
:grafana_url,
|
2017-07-13 16:03:52 +00:00
|
|
|
:gravatar_enabled,
|
2017-08-07 08:53:30 +00:00
|
|
|
:hashed_storage_enabled,
|
2017-07-13 16:03:52 +00:00
|
|
|
:help_page_hide_commercial_content,
|
|
|
|
:help_page_support_url,
|
2020-10-05 18:08:51 +00:00
|
|
|
:help_page_documentation_base_url,
|
2017-07-13 16:03:52 +00:00
|
|
|
:help_page_text,
|
2018-07-30 10:16:54 +00:00
|
|
|
:hide_third_party_offers,
|
2017-07-13 16:03:52 +00:00
|
|
|
:home_page_url,
|
|
|
|
:housekeeping_bitmaps_enabled,
|
|
|
|
:housekeeping_enabled,
|
|
|
|
:housekeeping_full_repack_period,
|
|
|
|
:housekeeping_gc_period,
|
|
|
|
:housekeeping_incremental_repack_period,
|
|
|
|
:html_emails_enabled,
|
|
|
|
:import_sources,
|
2021-02-22 15:10:48 +00:00
|
|
|
:in_product_marketing_emails_enabled,
|
2021-01-12 15:10:37 +00:00
|
|
|
:invisible_captcha_enabled,
|
2017-07-13 16:03:52 +00:00
|
|
|
:max_artifacts_size,
|
|
|
|
:max_attachment_size,
|
2020-06-09 15:08:05 +00:00
|
|
|
:max_import_size,
|
2017-07-13 16:03:52 +00:00
|
|
|
:max_pages_size,
|
|
|
|
:metrics_method_call_threshold,
|
2019-12-16 12:07:43 +00:00
|
|
|
:minimum_password_length,
|
2018-07-30 10:16:54 +00:00
|
|
|
:mirror_available,
|
2020-06-22 15:09:27 +00:00
|
|
|
:notify_on_unknown_sign_in,
|
2018-02-06 13:25:46 +00:00
|
|
|
:pages_domain_verification_enabled,
|
2017-11-23 13:16:14 +00:00
|
|
|
:password_authentication_enabled_for_web,
|
2018-01-19 12:04:45 +00:00
|
|
|
:password_authentication_enabled_for_git,
|
2018-05-25 16:44:15 +00:00
|
|
|
:performance_bar_allowed_group_path,
|
2017-07-13 16:03:52 +00:00
|
|
|
:performance_bar_enabled,
|
2020-12-15 15:09:59 +00:00
|
|
|
:personal_access_token_prefix,
|
2020-11-28 21:09:37 +00:00
|
|
|
:kroki_enabled,
|
|
|
|
:kroki_url,
|
2021-02-17 03:08:59 +00:00
|
|
|
:kroki_formats,
|
2017-07-13 16:03:52 +00:00
|
|
|
:plantuml_enabled,
|
|
|
|
:plantuml_url,
|
|
|
|
:polling_interval_multiplier,
|
2017-07-31 21:34:47 +00:00
|
|
|
:project_export_enabled,
|
2017-07-13 16:03:52 +00:00
|
|
|
:prometheus_metrics_enabled,
|
|
|
|
:recaptcha_enabled,
|
|
|
|
:recaptcha_private_key,
|
|
|
|
:recaptcha_site_key,
|
2019-07-18 08:27:02 +00:00
|
|
|
:login_recaptcha_protection_enabled,
|
2018-08-01 14:47:14 +00:00
|
|
|
:receive_max_input_size,
|
2017-07-13 16:03:52 +00:00
|
|
|
:repository_checks_enabled,
|
2020-07-22 00:09:26 +00:00
|
|
|
:repository_storages_weighted,
|
2020-10-02 21:08:18 +00:00
|
|
|
:require_admin_approval_after_user_signup,
|
2017-07-13 16:03:52 +00:00
|
|
|
:require_two_factor_authentication,
|
|
|
|
:restricted_visibility_levels,
|
2017-08-25 13:08:48 +00:00
|
|
|
:rsa_key_restriction,
|
2017-07-13 16:03:52 +00:00
|
|
|
:send_user_confirmation_email,
|
|
|
|
:session_expire_delay,
|
|
|
|
:shared_runners_enabled,
|
|
|
|
:shared_runners_text,
|
|
|
|
:sign_in_text,
|
|
|
|
:signup_enabled,
|
2019-11-15 18:06:24 +00:00
|
|
|
:sourcegraph_enabled,
|
|
|
|
:sourcegraph_url,
|
|
|
|
:sourcegraph_public_only,
|
2020-05-22 09:08:09 +00:00
|
|
|
:spam_check_endpoint_enabled,
|
|
|
|
:spam_check_endpoint_url,
|
2021-04-30 18:10:09 +00:00
|
|
|
:spam_check_api_key,
|
2017-07-13 16:03:52 +00:00
|
|
|
:terminal_max_session_time,
|
2018-07-30 10:16:54 +00:00
|
|
|
:terms,
|
2017-09-15 17:31:32 +00:00
|
|
|
:throttle_authenticated_api_enabled,
|
|
|
|
:throttle_authenticated_api_period_in_seconds,
|
2018-07-31 16:21:12 +00:00
|
|
|
:throttle_authenticated_api_requests_per_period,
|
|
|
|
:throttle_authenticated_web_enabled,
|
|
|
|
:throttle_authenticated_web_period_in_seconds,
|
|
|
|
:throttle_authenticated_web_requests_per_period,
|
2021-04-21 15:09:35 +00:00
|
|
|
:throttle_authenticated_packages_api_enabled,
|
|
|
|
:throttle_authenticated_packages_api_period_in_seconds,
|
|
|
|
:throttle_authenticated_packages_api_requests_per_period,
|
2018-07-31 16:21:12 +00:00
|
|
|
:throttle_unauthenticated_enabled,
|
|
|
|
:throttle_unauthenticated_period_in_seconds,
|
|
|
|
:throttle_unauthenticated_requests_per_period,
|
2021-04-21 15:09:35 +00:00
|
|
|
:throttle_unauthenticated_packages_api_enabled,
|
|
|
|
:throttle_unauthenticated_packages_api_period_in_seconds,
|
|
|
|
:throttle_unauthenticated_packages_api_requests_per_period,
|
2019-09-26 21:06:29 +00:00
|
|
|
:throttle_protected_paths_enabled,
|
|
|
|
:throttle_protected_paths_period_in_seconds,
|
|
|
|
:throttle_protected_paths_requests_per_period,
|
|
|
|
:protected_paths_raw,
|
2019-06-11 10:40:01 +00:00
|
|
|
:time_tracking_limit_to_hours,
|
2017-07-13 16:03:52 +00:00
|
|
|
:two_factor_grace_period,
|
|
|
|
:unique_ips_limit_enabled,
|
|
|
|
:unique_ips_limit_per_user,
|
|
|
|
:unique_ips_limit_time_window,
|
|
|
|
:usage_ping_enabled,
|
|
|
|
:user_default_external,
|
2018-08-03 20:52:01 +00:00
|
|
|
:user_show_add_ssh_key_message,
|
2018-08-30 12:53:06 +00:00
|
|
|
:user_default_internal_regex,
|
2017-07-13 16:03:52 +00:00
|
|
|
:user_oauth_applications,
|
2018-06-13 16:06:35 +00:00
|
|
|
:version_check_enabled,
|
2018-09-24 15:30:49 +00:00
|
|
|
:web_ide_clientside_preview_enabled,
|
2018-11-07 11:00:21 +00:00
|
|
|
:diff_max_patch_bytes,
|
2018-10-31 19:12:22 +00:00
|
|
|
:commit_email_hostname,
|
2019-01-31 11:28:31 +00:00
|
|
|
:protected_ci_variables,
|
2019-08-14 19:21:58 +00:00
|
|
|
:local_markdown_version,
|
|
|
|
:snowplow_collector_hostname,
|
|
|
|
:snowplow_cookie_domain,
|
|
|
|
:snowplow_enabled,
|
2019-11-08 21:06:38 +00:00
|
|
|
:snowplow_app_id,
|
2019-10-17 12:07:33 +00:00
|
|
|
:push_event_hooks_limit,
|
2019-10-17 21:06:41 +00:00
|
|
|
:push_event_activities_limit,
|
2019-12-02 12:06:45 +00:00
|
|
|
:custom_http_clone_url_root,
|
2020-02-20 03:08:57 +00:00
|
|
|
:snippet_size_limit,
|
|
|
|
:email_restrictions_enabled,
|
2020-04-22 09:09:36 +00:00
|
|
|
:email_restrictions,
|
2020-04-29 00:09:38 +00:00
|
|
|
:issues_create_limit,
|
2021-02-09 21:09:19 +00:00
|
|
|
:notes_create_limit,
|
2021-02-11 12:08:52 +00:00
|
|
|
:notes_create_limit_allowlist_raw,
|
2020-07-07 15:08:49 +00:00
|
|
|
:raw_blob_request_limit,
|
|
|
|
:project_import_limit,
|
|
|
|
:project_export_limit,
|
|
|
|
:project_download_export_limit,
|
|
|
|
:group_import_limit,
|
|
|
|
:group_export_limit,
|
2020-07-17 15:09:13 +00:00
|
|
|
:group_download_export_limit,
|
2020-09-02 09:10:23 +00:00
|
|
|
:wiki_page_max_content_bytes,
|
2021-01-04 12:10:44 +00:00
|
|
|
:container_registry_delete_tags_service_timeout,
|
2021-02-01 15:08:56 +00:00
|
|
|
:rate_limiting_response_text,
|
|
|
|
:container_registry_expiration_policies_worker_capacity,
|
2021-02-09 09:09:19 +00:00
|
|
|
:container_registry_cleanup_tags_service_max_list_size,
|
2021-04-27 15:09:52 +00:00
|
|
|
:keep_latest_artifact,
|
|
|
|
:whats_new_variant
|
2017-07-13 16:03:52 +00:00
|
|
|
]
|
|
|
|
end
|
2018-09-19 10:57:57 +00:00
|
|
|
|
2019-04-09 15:38:58 +00:00
|
|
|
def external_authorization_service_attributes
|
|
|
|
[
|
|
|
|
:external_auth_client_cert,
|
|
|
|
:external_auth_client_key,
|
|
|
|
:external_auth_client_key_pass,
|
|
|
|
:external_authorization_service_default_label,
|
|
|
|
:external_authorization_service_enabled,
|
|
|
|
:external_authorization_service_timeout,
|
|
|
|
:external_authorization_service_url
|
|
|
|
]
|
|
|
|
end
|
|
|
|
|
2021-02-03 06:10:04 +00:00
|
|
|
# ok to remove in REST API v5
|
2020-09-26 00:09:35 +00:00
|
|
|
def deprecated_attributes
|
|
|
|
[
|
2021-02-03 06:10:04 +00:00
|
|
|
:admin_notification_email,
|
|
|
|
:asset_proxy_whitelist
|
2020-09-26 00:09:35 +00:00
|
|
|
]
|
|
|
|
end
|
|
|
|
|
2018-09-19 10:57:57 +00:00
|
|
|
def expanded_by_default?
|
|
|
|
Rails.env.test?
|
|
|
|
end
|
2019-05-02 01:07:38 +00:00
|
|
|
|
2019-11-04 06:06:46 +00:00
|
|
|
def integration_expanded?(substring)
|
2021-04-23 09:10:03 +00:00
|
|
|
@application_setting.errors.messages.any? { |k, _| k.to_s.start_with?(substring) }
|
2019-11-04 06:06:46 +00:00
|
|
|
end
|
|
|
|
|
2019-05-02 01:07:38 +00:00
|
|
|
def instance_clusters_enabled?
|
|
|
|
can?(current_user, :read_cluster, Clusters::Instance.new)
|
|
|
|
end
|
2019-09-26 21:06:29 +00:00
|
|
|
|
|
|
|
def omnibus_protected_paths_throttle?
|
|
|
|
Rack::Attack.throttles.key?('protected paths')
|
|
|
|
end
|
2020-01-08 09:07:53 +00:00
|
|
|
|
|
|
|
def self_monitoring_project_data
|
|
|
|
{
|
|
|
|
'create_self_monitoring_project_path' =>
|
|
|
|
create_self_monitoring_project_admin_application_settings_path,
|
|
|
|
|
|
|
|
'status_create_self_monitoring_project_path' =>
|
|
|
|
status_create_self_monitoring_project_admin_application_settings_path,
|
|
|
|
|
2020-01-13 15:07:53 +00:00
|
|
|
'delete_self_monitoring_project_path' =>
|
|
|
|
delete_self_monitoring_project_admin_application_settings_path,
|
|
|
|
|
|
|
|
'status_delete_self_monitoring_project_path' =>
|
|
|
|
status_delete_self_monitoring_project_admin_application_settings_path,
|
|
|
|
|
2020-01-08 09:07:53 +00:00
|
|
|
'self_monitoring_project_exists' =>
|
2020-01-28 15:08:36 +00:00
|
|
|
Gitlab::CurrentSettings.self_monitoring_project.present?.to_s,
|
2020-01-08 09:07:53 +00:00
|
|
|
|
|
|
|
'self_monitoring_project_full_path' =>
|
2020-01-28 15:08:36 +00:00
|
|
|
Gitlab::CurrentSettings.self_monitoring_project&.full_path
|
2020-01-08 09:07:53 +00:00
|
|
|
}
|
|
|
|
end
|
2020-10-05 18:08:51 +00:00
|
|
|
|
|
|
|
def show_documentation_base_url_field?
|
|
|
|
Feature.enabled?(:help_page_documentation_redirect)
|
|
|
|
end
|
2020-11-16 09:09:18 +00:00
|
|
|
|
|
|
|
def signup_enabled?
|
|
|
|
!!Gitlab::CurrentSettings.signup_enabled
|
|
|
|
end
|
2015-01-08 08:22:50 +00:00
|
|
|
end
|
2019-09-13 13:26:31 +00:00
|
|
|
|
2021-05-11 21:10:21 +00:00
|
|
|
ApplicationSettingsHelper.prepend_mod_with('ApplicationSettingsHelper')
|
2019-09-13 13:26:31 +00:00
|
|
|
|
|
|
|
# The methods in `EE::ApplicationSettingsHelper` should be available as both
|
|
|
|
# instance and class methods.
|
2021-05-11 21:10:21 +00:00
|
|
|
ApplicationSettingsHelper.extend_mod_with('ApplicationSettingsHelper')
|