diff options
| author | Jacob Vosmaer <contact@jacobvosmaer.nl> | 2015-07-29 15:44:04 +0200 |
|---|---|---|
| committer | Jacob Vosmaer <contact@jacobvosmaer.nl> | 2015-07-29 15:44:04 +0200 |
| commit | 05b518aa4d5a690ab90f7026b3684659c9d51fa9 (patch) | |
| tree | d34d37bcbe77cf73007d1d272e05c7ca94113f07 /app/helpers/auth_helper.rb | |
| parent | 097a8952d0991b42752a84aedd472aa8291717cf (diff) | |
| parent | 8bda433734394af7e3858c0804b378a6d1313a84 (diff) | |
| download | gitlab-ce-05b518aa4d5a690ab90f7026b3684659c9d51fa9.tar.gz | |
Merge branch 'master' of dev.gitlab.org:gitlab/gitlabhq into backup-archive-permissions
Diffstat (limited to 'app/helpers/auth_helper.rb')
| -rw-r--r-- | app/helpers/auth_helper.rb | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/app/helpers/auth_helper.rb b/app/helpers/auth_helper.rb new file mode 100644 index 00000000000..0e7a37b4cc6 --- /dev/null +++ b/app/helpers/auth_helper.rb @@ -0,0 +1,50 @@ +module AuthHelper + PROVIDERS_WITH_ICONS = %w(twitter github gitlab bitbucket google_oauth2).freeze + FORM_BASED_PROVIDERS = [/\Aldap/, 'kerberos'].freeze + + def ldap_enabled? + Gitlab.config.ldap.enabled + end + + def provider_has_icon?(name) + PROVIDERS_WITH_ICONS.include?(name.to_s) + end + + def auth_providers + Gitlab::OAuth::Provider.providers + end + + def label_for_provider(name) + Gitlab::OAuth::Provider.label_for(name) + end + + def form_based_provider?(name) + FORM_BASED_PROVIDERS.any? { |pattern| pattern === name.to_s } + end + + def form_based_providers + auth_providers.select { |provider| form_based_provider?(provider) } + end + + def button_based_providers + auth_providers.reject { |provider| form_based_provider?(provider) } + end + + def provider_image_tag(provider, size = 64) + label = label_for_provider(provider) + + if provider_has_icon?(provider) + file_name = "#{provider.to_s.split('_').first}_#{size}.png" + + image_tag(image_path("auth_buttons/#{file_name}"), alt: label, title: "Sign in with #{label}") + else + label + end + end + + def auth_active?(provider) + current_user.identities.exists?(provider: provider.to_s) + end + + extend self +end |
