From 141fa98c4ec2d9373513bfb9f17ee2a3d0113a2f Mon Sep 17 00:00:00 2001 From: Arthur Del Esposte Date: Sun, 26 Apr 2015 17:50:19 +0000 Subject: [PATCH] Fix ldap plugin hotspot behaviour --- plugins/ldap/lib/ldap_plugin.rb | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/plugins/ldap/lib/ldap_plugin.rb b/plugins/ldap/lib/ldap_plugin.rb index 5e99c82..9dade30 100644 --- a/plugins/ldap/lib/ldap_plugin.rb +++ b/plugins/ldap/lib/ldap_plugin.rb @@ -18,7 +18,8 @@ class LdapPlugin < Noosfero::Plugin # - login received by ldap # - params from current context # returns = updated person_data hash - def ldap_plugin_set_profile_data(attrs, login, params) + def ldap_plugin_set_profile_data(attrs, params) + [attrs, params] end # -> Custom ldap plugin hotspot to update user object @@ -55,19 +56,22 @@ class LdapPlugin < Noosfero::Plugin if attrs user.login = login - user.email = attrs[:mail] + user.email = get_email(attrs, login) user.name = attrs[:fullname] user.password = password user.password_confirmation = password - person_data = plugins.dispatch(:ldap_plugin_set_profile_data, attrs, login, context.params) - user.person_data = person_data.blank? ? context.params[:profile_data] : person_data + user.person_data = plugins.pipeline(:ldap_plugin_set_profile_data, attrs, context.params).last[:profile_data] user.activated_at = Time.now.utc user.activation_code = nil ldap = LdapAuthentication.new(context.environment.ldap_plugin_attributes) begin - user = nil unless user.save! - plugins.dispatch(:ldap_plugin_update_user, user, attrs) + if user.save + user.activate + plugins.dispatch(:ldap_plugin_update_user, user, attrs) + else + user = nil + end rescue #User not saved end @@ -90,6 +94,16 @@ class LdapPlugin < Noosfero::Plugin user end + def get_email(attrs, login) + return attrs[:mail] unless attrs[:mail].blank? + + if attrs[:fullname] + return attrs[:fullname].to_slug + "@ldap.user" + else + return login.to_slug + "@ldap.user" + end + end + def login_extra_contents proc do @person = Person.new(:environment => @environment) -- libgit2 0.21.2