Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/helpers/auth_helper.rb')
-rw-r--r--app/helpers/auth_helper.rb34
1 files changed, 30 insertions, 4 deletions
diff --git a/app/helpers/auth_helper.rb b/app/helpers/auth_helper.rb
index 6fe92a5a978..c1a74382d46 100644
--- a/app/helpers/auth_helper.rb
+++ b/app/helpers/auth_helper.rb
@@ -86,6 +86,17 @@ module AuthHelper
auth_providers.select { |provider| form_based_provider?(provider) }
end
+ def saml_providers
+ auth_providers.select { |provider| auth_strategy_class(provider) == 'OmniAuth::Strategies::SAML' }
+ end
+
+ def auth_strategy_class(provider)
+ config = Gitlab::Auth::OAuth::Provider.config_for(provider)
+ return if config.nil? || config['args'].blank?
+
+ config.args['strategy_class']
+ end
+
def any_form_based_providers_enabled?
form_based_providers.any? { |provider| form_enabled_for_sign_in?(provider) }
end
@@ -164,10 +175,25 @@ module AuthHelper
end
def google_tag_manager_enabled?
- Gitlab.com? &&
- extra_config.has_key?('google_tag_manager_id') &&
- extra_config.google_tag_manager_id.present? &&
- !current_user
+ return false unless Gitlab.dev_env_or_com?
+
+ has_config_key = if Feature.enabled?(:gtm_nonce, type: :ops)
+ extra_config.has_key?('google_tag_manager_nonce_id') &&
+ extra_config.google_tag_manager_nonce_id.present?
+ else
+ extra_config.has_key?('google_tag_manager_id') &&
+ extra_config.google_tag_manager_id.present?
+ end
+
+ has_config_key && !current_user
+ end
+
+ def google_tag_manager_id
+ return unless google_tag_manager_enabled?
+
+ return extra_config.google_tag_manager_nonce_id if Feature.enabled?(:gtm_nonce, type: :ops)
+
+ extra_config.google_tag_manager_id
end
def auth_app_owner_text(owner)