diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example index ad24ba97c6f99c65679e25debc961484d3322198..b6a8e68bf8e4429ef5727d933d77d98fe9bd3d67 100644 --- a/config/gitlab.yml.example +++ b/config/gitlab.yml.example @@ -97,6 +97,7 @@ production: &base method: 'ssl' # "ssl" or "plain" bind_dn: '_the_full_dn_of_the_user_you_will_bind_with' password: '_the_password_of_the_bind_user' + allow_username_or_email_login: true ## OmniAuth settings omniauth: diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index e0938a9640c6b65e22019942861fedf8ffb78d75..52f757fdc94229a95e7e243e9e607dc0d88d9f62 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -206,6 +206,12 @@ Devise.setup do |config| # end if Gitlab.config.ldap.enabled + if Gitlab.config.ldap.allow_username_or_email_login + email_stripping_proc = Proc.new {|name| name.gsub(/@.*$/,'')} + else + email_stripping_proc = lambda {|n|n} + + end config.omniauth :ldap, host: Gitlab.config.ldap['host'], base: Gitlab.config.ldap['base'], @@ -213,7 +219,8 @@ Devise.setup do |config| port: Gitlab.config.ldap['port'], method: Gitlab.config.ldap['method'], bind_dn: Gitlab.config.ldap['bind_dn'], - password: Gitlab.config.ldap['password'] + password: Gitlab.config.ldap['password'], + name_proc: email_stripping_proc end Gitlab.config.omniauth.providers.each do |provider|