summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatricio Cano <suprnova32@gmail.com>2016-04-11 10:16:15 -0500
committerPatricio Cano <suprnova32@gmail.com>2016-04-11 10:16:15 -0500
commit12e6084667f8750c263b4a2e324e9a283697b52e (patch)
tree20b9d57824dbafbcbb346c1a1566fbee2663165f
parent4087bd16e8e083550d306fd0c90d2a892b8577bf (diff)
downloadgitlab-ce-12e6084667f8750c263b4a2e324e9a283697b52e.tar.gz
Allow `external_providers` for Omniauth to be defined to mark these users as external
-rw-r--r--config/initializers/1_settings.rb1
-rw-r--r--lib/gitlab/o_auth/user.rb12
2 files changed, 13 insertions, 0 deletions
diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
index 72c4d8d61ce..94612997ead 100644
--- a/config/initializers/1_settings.rb
+++ b/config/initializers/1_settings.rb
@@ -129,6 +129,7 @@ Settings['omniauth'] ||= Settingslogic.new({})
Settings.omniauth['enabled'] = false if Settings.omniauth['enabled'].nil?
Settings.omniauth['auto_sign_in_with_provider'] = false if Settings.omniauth['auto_sign_in_with_provider'].nil?
Settings.omniauth['allow_single_sign_on'] = false if Settings.omniauth['allow_single_sign_on'].nil?
+Settings.omniauth['external_providers'] = [] if Settings.omniauth['external_providers'].nil?
Settings.omniauth['block_auto_created_users'] = true if Settings.omniauth['block_auto_created_users'].nil?
Settings.omniauth['auto_link_ldap_user'] = false if Settings.omniauth['auto_link_ldap_user'].nil?
Settings.omniauth['auto_link_saml_user'] = false if Settings.omniauth['auto_link_saml_user'].nil?
diff --git a/lib/gitlab/o_auth/user.rb b/lib/gitlab/o_auth/user.rb
index 832fb08a526..6e099c26d8c 100644
--- a/lib/gitlab/o_auth/user.rb
+++ b/lib/gitlab/o_auth/user.rb
@@ -54,6 +54,14 @@ module Gitlab
@user ||= build_new_user
end
+ unless @user.nil?
+ if external_provider?
+ @user.external = true
+ else
+ @user.external = false
+ end
+ end
+
@user
end
@@ -113,6 +121,10 @@ module Gitlab
end
end
+ def external_provider?
+ Gitlab.config.omniauth.external_providers.include?(auth_hash.provider)
+ end
+
def block_after_signup?
if creating_linked_ldap_user?
ldap_config.block_auto_created_users