diff --git a/config/settings.yml b/config/settings.yml index 2715329..efdeeec 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -1,4 +1,6 @@ plugins: + ldap_title: + default: 'LDAP Authentication' ldap_enabled: default: true ldap_user_create_mode: @@ -15,6 +17,8 @@ plugins: default: 'dc=example,dc=com' ldap_uid: default: 'sAMAccountName' + ldap_email: + default: 'email' ldap_bind_dn: default: '' ldap_password: diff --git a/plugin.rb b/plugin.rb index 88fdfbd..0b7537c 100644 --- a/plugin.rb +++ b/plugin.rb @@ -7,7 +7,7 @@ gem 'pyu-ruby-sasl', '0.0.3.3', require: false gem 'rubyntlm', '0.3.4', require: false -gem 'net-ldap', '0.17.1' +gem 'net-ldap', '0.19.0' gem 'omniauth-ldap', '1.0.5' require 'yaml' @@ -23,6 +23,9 @@ def enabled? end def after_authenticate(auth_options) + if SiteSetting.ldap_email != 'email' + auth_options.info[:email] = auth_options.extra[:raw_info][SiteSetting.ldap_email].first() + end return auth_result(auth_options.info) end @@ -31,6 +34,7 @@ def register_middleware(omniauth) omniauth.provider :ldap, setup: -> (env) { env["omniauth.strategy"].options.merge!( + title: SiteSetting.ldap_title, host: SiteSetting.ldap_hostname, port: SiteSetting.ldap_port, method: SiteSetting.ldap_method,